练习题mysql:统计胜负结果的SQL语句

本文介绍如何通过SQL查询统计每日胜负次数的方法。提供两种思路:一是分别统计胜和负的次数再联结;二是直接在一个查询中统计胜和负的次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给定一个 tbl 表,编写一个 SQL 查询,来统计每日的胜负次数
+---------+------------------+
| Result(VARCHAR) | Time(DATE) | 
+---------+------------------+
|       胜 |       2015-01-01 |              
|       负 |       2015-01-01 |              
|       胜 |       2015-01-02 |              
|       负 |       2015-01-02 |              
+---------+------------------+
例如,根据上述给定的 tbl 表格,返回如下结果:

+---------+------------------+
| 胜 | 负 | 时间               | 
+---------+------------------+
| 1  |   1 |       2015-01-01 |              
| 1  |   1 |       2015-01-02 |                  
+---------+------------------+

思路1.:
1.查询出胜的次数,按时间分组;
2.查询出负的次数,按时间分组
3.联结查询,根据时间相等。

查询胜利的次数

select time ,count(1) from tbl where result = '胜' GROUP BY time

查询失败的次数

select time ,count(1) from tbl where result = '胜' GROUP BY time

当进行到这里后,我发现没办法使用联结查询。由于sql的不熟练,所以要另外想思路。

思路2:
一次查出胜的次数和负的次数,按时间分组 结果得出

select count(case result when '胜' then 1 end) as 胜,
		  count(case result when '负' then 1 end) as 负,
		  time as 时间 from tbl group by time;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值