作者fantasyj (如梦似幻)
看板Database
标题Re: [SQL ] 直转横是某可用Select Case ?
时间Sat Jul 20 21:09:37 2013
※ 引述《Tripadvisor (探险家)》之铭言:
: Table A
: 类别 名称 阅读状态 我的最爱
: ---------------------------------
: 小说 笑傲江湖 N Y
: 小说 鹿鼎记 Y N
: 小说 碧血剑 Y N
: 小说 书剑恩仇录 Y N
: 转为
: Table B
: 类别 总笔数 已阅读完笔数 喜爱笔数
: ---------------------------------------
: 小说 4 3 1
: 请问这种转换方式是否Select case可以做到
: 想了一整晚了,希望有前辈能给点提示。
select 类别,
count(*) as 总笔数,
sum(case when 阅读状态 = 'Y' then 1 else 0 end) as 已阅读完笔数,
sum(case when 我的最爱 = 'Y' then 1 else 0 end) as 喜爱笔数
from Table A
group by 类别;
这样使用case只要扫table一次,performance比较好...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.164.105.60
1F:推 Tripadvisor:感谢前辈相助 :) 07/21 22:05
2F:推 Tripadvisor:没有想到把Select case这个用法用sum函数加总,真是 07/21 22:13
3F:→ Tripadvisor:一语点醒梦中人阿 ! 07/21 22:13