sum(case when ... then end) 使用

统计国家性别人口

有如下数据
国家(country) 性别(sex) 人口(population)
中国 1 340
中国 2 260
美国 1 45
美国 2 55
加拿大 1 51
加拿大 2 49
英国 1 40
英国 2 60

按照国家和性别进行分组,得出结果如下
国家 男 女
中国 340 260
美国 45 55
加拿大 51 49
英国 40 60

SELECT
    country,
    sum(
        CASE
        WHEN sex = 1 THEN
            population
        END
    ) as men,
    sum(
        CASE
        WHEN sex = 2 THEN
            population
        END
    ) as women
FROM
    c
GROUP BY
    country

统计每个人及格和不及格的科目数目

a chinese 100
a math 90
a english 95
b chinese 90
b math 80
b english 100
c chinese 120
c math 70
c english 60

SELECT
    a.name,
    count(case when score > 90 then a.name end),
    count(case when score <= 90 then a.name end)
FROM
    a
INNER JOIN b on a.`subject` = b.`subject`
group by a.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值