[SQL ] 請問這個選擇語法
假設有table資料如下
tb1
---------------------------------------------------
帳號 訂購編號 日期
---------------------------------------------------
User Item OrderDate
---------------------------------------------------
User1 Item0 2008-10-10 10:00:00
User1 Item1 2008-10-10 10:00:00
User2 Item0 2008-10-10 10:00:00
User2 Item0 2008-10-10 10:00:00
User2 Item1 2008-10-10 10:00:00
User3 Item1 2008-10-10 10:00:00
User3 Item2 2008-10-10 10:00:00
User4 Item3 2008-10-10 10:00:00
User5 Item0 2008-10-10 10:00:00
User5 Item0 2008-10-10 10:00:00
User5 Item1 2008-10-10 10:00:00
要怎麼產生各個User對應的Item數目報表,想要統計各個User訂購的項目
Item0 Item1 Item2 Item3
User1 1 1
User2 2 1
User3 1 1
User4 1
User5 2 1
請問語法該怎麼下,使用MS-SQL
如果使用
Select User, count(item) from tb1 只能獲得該使用者全部的訂購數
該如何產生各個項目的統計呢
剛剛試了一下
select User,
sum(i0) as count_i0,
sum(i1) as count_i1,
sum(i2) as count_i2,
sum(i3) as count_i3 from
(
select User,
case Item
when 0 then count(Item)
else 0
end as i0,
case Item
when 1 then count(Item)
else 0
end as i1,
case Item
when 2 then count(Item)
else 0
end as i2,
case Item
when 3 then count(Item)
else 0
end as i3,
from tb1 group by User
) as list_1
group by User
可以產生想要的結果,不過語法似乎不夠簡潔,效能可能也有問題
想請問是否有更好的作法
謝謝
※ 編輯: vizshala 來自: 59.124.66.91 (10/21 14:33)
討論串 (同標題文章)