sql - 带有子查询的 SQL 多个聚合函数
问题描述
菜鸟问题,但我希望有人可以帮助我了解我的问题的逻辑。所以我有 3 列的 SELECT 。我想计算 column1 中具有两个不同值的行,然后计算按 column2 分组的中位数。然后我想为 column1 中的不同值设置相同的值。
我该怎么做?到目前为止我有这个,但我不知道在哪里放置中值函数?
SELECT region, product, year
(SELECT COUNT (*),
FROM mytable
WHERE product = dairy and product = meat) as count_dairy_meat
(SELECT COUNT (*)
FROM mytable
WHERE product = veg) as count_veg
FROM mytable
GROUP BY region, product, year;
我希望结果看起来像这样
count_dairy_meat count_veg Median
Region1
Region2
Region3
Total
解决方案
我怀疑您正在寻找条件聚合。逻辑是为“meal”和“veg”生成单独的计数product
是:
select
region,
product,
year,
sum(case when product = 'meal' then 1 else 0 end) count_meat,
sum(case when product = 'veg' then 1 else O end) count_veg
from mytable
group by region, product, year
我不知道您要计算哪个中位数。Oracle 有一个median()
您可能会使用的聚合函数。
推荐阅读
- jinja2 - Jinja2 不呈现 <> 之间的表达式
- python - ctypes CDLL 默认路径是什么?
- javascript - 是否有任何插件可以为表单的每个输入添加自动完成属性
- java - Is it required to set the DISPLAY for headless firefox browser on linux machine
- angular - 让 Angular6 编译器因忘记方括号而失败?
- c# - Compare two word document in c#
- xcode - 升级到 Xcode 10 后的问题:找不到构建输入文件
- wix - Reinstall component when rerunning WiX installer
- typescript - Visual Code not showing unused imports/variables anymore
- azure-logic-apps - logic apps with multiple sql connections