sql - 如何在一个查询中从该字段的其余值中获取字段值的 COUNT 以及该相同值的“总数百分比”?
问题描述
解释标题中问题的示例:
表名:水果
| 水果类型 | <-- 列标题
|苹果|
|苹果|
|橙色|
|橙色|
所以基本上,我想要最简单的查询来返回此列中橙子的 COUNT(即 2),以及将橙子的百分比与水果的总体类型(即 50%)分开的列。
具体来说,我不仅坚持将两个必要的要求组合到一个查询中,而且还坚持如何获得第二部分 (%)。
解决方案
您将使用窗口函数:
select fruit_type, count(*), count(*) * 1.0 / sum(count(*)) over ()
from fruit
group by fruit_type;
这将返回所有水果的值,而不仅仅是橙子。
如果您只想要橘子,请使用条件聚合:
select avg(case when fruit_type = 'orange' then 1.0 else 0 end)
from fruit;
推荐阅读
- arduino - 关于低功耗蓝牙作为建筑物或校园室内接近传感器的一些问题
- c - 如何在 Linux 平台上从 C 代码访问 Delphi 函数/过程
- python - 从当前模块导入方法
- c# - 序列化内部类
- flutter - Flutter - 如何将文本放在文本的右上方?
- google-chrome-devtools - chrome devtools 中的这个是什么?
- c++ - 为什么关系运算符不能在指针和数组中工作
- stm32 - stm32wb, nucleo-wb55, 传感器, 硬件
- laravel - 导入后如何加载 vue 组件。可能无法自行加载,应加载到它导入的文件中
- reactjs - How to handle multiple Contexts using React Context API?