一道SQL語句面試題,關於group by的
阿新 • • 發佈:2019-01-06
一道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-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