MySQL 统计同一字段不同值的个数

最近做了一套笔试题,其中有一道 SQL 的题目大概如下

  • 已知数据表如下
dayresult
2018-2-1
2018-2-1
2018-2-1
2018-2-2
2018-2-2
2018-2-2
  • 输出如下结果
day
2018-2-121
2018-2-212

根据输出结果分析可知,该查询结果以 day 字段作为分组,并统计 result 字段中不同值的个数

(1)大多数情况下,我们遇到的问题是根据分组结果,统计每个分组的个数,其语法如下,此语法只能统计所有的记录个数,无法根据同一字段的不同值统计

SELECT COUNT(*) FROM table_name GROUP BY col_name;

(2). 根据同一字段的不同值统计,这里使用 SUM 函数和 CASE 语句实现,其语法如下

SELECT 
    day,
    sum(CASE result WHEN "胜" THEN 1 ELSE 0 END) AS "胜",
    sum(CASE result WHEN "负" THEN 1 ELSE 0 END) AS "负" 
FROM 
    test 
GROUP BY 
    day;

结果如下
运行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值