提问人:PeteyPablo 提问时间:3/17/2023 最后编辑:Dale KPeteyPablo 更新时间:3/17/2023 访问量:108
聚合函数将条件作为参数?[复制]
Aggregate function taking a condition as argument? [duplicate]
问:
这个问题在这里已经有答案了:
相当于 COUNTIF 聚合函数的 Sql Server (10 个答案)
聚合函数的 Where 子句条件 [重复] (3 个答案)
如何在MySQL中使用聚合查询? (1 个答案)
8个月前关闭。
我正在做一些SQL练习题,发现了一个问题,其中一个替代解决方案让我感到困惑。
问题简化如下:
显示标识为“M”的患者多于“F”的省份 ID。
名为“patients”的表具有相关的列 patient_id、province_id 和性别(“M”或“F”)。
我不明白这个给定的解决方案,即使它适用于运行 SQL 的网站(网站上的版本未知,www.sql-practice.com 供参考)。
SELECT province_id
FROM patients
GROUP BY province_id
HAVING SUM(gender = 'M') > SUM(gender = 'F')
在解决方案的部分中,为什么此程序允许您在聚合的括号内指定条件?这是我不习惯的特定 SQL 版本吗?我使用不同的数据集在我的桌面应用程序 SQL Server 上尝试了这种构造,但出现语法错误,我认为如果您尝试在聚合函数中设置条件,就会发生这种情况。HAVING
由于我问题的性质,尝试解决这个问题是不适用的,因为我正在寻求一种显然有效但在任何地方都没有文档的替代解决方案的澄清,我也找不到任何人在 StackOverflow 上询问它。
答: 暂无答案
评论
COUNT
SUM