您的位置:首页 > 博客中心 > 数据库 >

sql - 面试

时间:2022-03-14 03:47

一,关于 group by

表内容: 
2005-05-09 胜 
2005-05-09 胜 
2005-05-09 负 
2005-05-09 负 
2005-05-10 胜 
2005-05-10 负 
2005-05-10 负

 需要生成结果为:

 

Fday
2005/5/9 2 2
2005/5/10 1 2

建表:

gxlsystem.com,布布扣gxlsystem.com,布布扣
1 create table t_com(Fday varchar(10),Fwin_lose nchar(1))
2 insert into t_com values(‘2005-05-09‘,‘胜‘)
3 insert into t_com values(‘2005-05-09‘,‘胜‘)
4 insert into t_com values(‘2005-05-09‘,‘负‘)
5 insert into t_com values(‘2005-05-09‘,‘负‘)
6 insert into t_com values(‘2005-05-10‘,‘胜‘)
7 insert into t_com values(‘2005-05-10‘,‘负‘)
8 insert into t_com values(‘2005-05-10‘,‘负‘)
View Code

答案:

gxlsystem.com,布布扣gxlsystem.com,布布扣
1 --解释:sum中的then后的数字表示‘代表几‘,如‘1‘表示‘出现一个记录,基数加1‘.
2 
3 select Fday [日期],
4 SUM(case when Fwin_lose=‘胜‘ then 1 else 0 end) [胜],
5 SUM(case when Fwin_lose=‘负‘ then 1 else 0 end) [负]
6  from t_com group by Fday
View Code

 

热门排行

今日推荐

热门手游