一道SQL语句面试题,关于group by的

一道SQL语句面试题,关于group by
表内容:
2015-05-09 胜
2015-05-09 胜
2015-05-09 负
2015-05-09 负
2015-05-10 胜
2015-05-10 负
2015-05-10 负

如果要生成下列结果, 该如何写sql语句?

           胜 负
2015-05-09 2  2

2015-05-10 1  2

--创建表(表示建立一个临时表#tmp,在过程结束,会把该表释放掉,不会存储到数据库)
create table #tmp (
	rq varchar(10),
	shengfu nchar(1)
)
--插入数据
insert into #tmp values('2015-05-09','胜')
insert into #tmp values('2015-05-09','胜')
insert into #tmp values('2015-05-09','负')
insert into #tmp values('2015-05-09','负')
insert into #tmp values('2015-05-10','胜')
insert into #tmp values('2015-05-10','负')
insert into #tmp values('2015-05-10','负')

--查询表中数据
select * from #tmp
--查询需要得到的结果
select rq as ' ',SUM(case when shengfu='胜' then 1 else 0 end) '胜',SUM(case when shengfu='负' then 1 else 0 end) '负'
from #tmp 
group by rq

或者(但不是很推荐这样写)
select rq ,SUM(case shengfu when '胜' then 1 else 0 end) '胜',SUM(case shengfu when '负' then 1 else 0 end) '负'
from #tmp
group by rq



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝地反击T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值