gpt4 book ai didi

sql - 每年计算两个不同的值

转载 作者:行者123 更新时间:2023-12-04 21:22:45 24 4
gpt4 key购买 nike

我有一个包含年份和性别的表格。这是我的表格的示例:

YEAR   Sex
1999 M
1999 M
1999 F
1999 F

我使用这个查询来获取我的结果。

SELECT YEAR,COUNT(*)
FROM athlete_events
WHERE SEX = 'M'
GROUP BY YEAR;

我在输出中看到了这个结果:

YEAR  COUNT(*)
1999 2

但是我想看到这个结果:

YEAR  COUNT_MALE  COUNT_FEMALE
1999 2 2

这在 Pracle SQL 中可能吗?

最佳答案

您可以使用 case 表达式进行条件聚合:

select year,
count(case when sex = 'M' then year end) as count_male,
count(case when sex = 'F' then year end) as count_female
from athlete_events
group by year;

YEAR COUNT_MALE COUNT_FEMALE
---------- ---------- ------------
1999 2 2

count 函数忽略空值,因此不匹配指定标志的行(在 case 表达式中默认为空值;如果您愿意,可以显式设置 else null) .

(就我个人而言,我更喜欢使用 count() 而不是 sum() 来处理这类事情,因为这样可以更好地反射(reflect)您实际在做什么 - 计数。 )

关于sql - 每年计算两个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com