我有第一张表中显示的表格结构。
并希望在单个查询中获取男性和女性计数,以便请求只会在服务器上进行一次。
答案 0 :(得分:11)
这是你需要做的:
select gender,
count(case when age between 0 and 20 then 1 else null end) Age_0_20,
count(case when age between 21 and 40 then 1 else null end) Age_21_40
from yourtable
group by gender
相应调整:)
更新,澄清
请注意,COUNT
聚合函数仅计算非空值。因此,else
中的case
值必须为NULL
。 When
值返回1
,但它可以是任何非空值。
有些人使用SUM
:
select gender,
sum(case when age between 0 and 20 then 1 else 0 end) Age_0_20,
sum(case when age between 21 and 40 then 1 else 0 end) Age_21_40
from yourtable
group by gender
结果将完全相同。