首页 > 代码库 > sql - 面试
sql - 面试
一,关于 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 |
建表:
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‘,‘负‘)
答案:
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
sql - 面试
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。