作者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
推 Tripadvisor:感謝前輩相助 :) 07/21 22:05
推 Tripadvisor:沒有想到把Select case這個用法用sum函數加總,真是 07/21 22:13
→ Tripadvisor:一語點醒夢中人阿 ! 07/21 22:13