全部,如何編寫一個SQL查詢爲字段的每個可能的值創建一個單獨的列?
對不起 - 這可能是一個非常簡單的SQL問題,但我無法弄清楚如何編寫Google搜索來獲得我需要的。
我有一個表,看起來像這樣:
id color points
--- ----- ------
1 red 10
2 blue 20
3 blue 30
4 red 100
5 blue 70
6 blue 200
7 red 30
我想知道兩件事情:
- 多少行顏色=「紅色」,以及有多少顏色= '藍色'?
- color ='red',color ='blue'的行的總點數是多少?
使用count()
,sum()
和group by
,我可以很容易地創建一個結果集,看起來像這樣:
select
color,
count(color),
sum(points)
from
my_table
group by
color
color count points
----- ----- ------
red 3 140
blue 4 320
不過,我真正想要的是一個行的結果看起來是這樣的:
red_count red_points blue_count blue_points
--------- ---------- ---------- -----------
3 140 4 320
什麼是值得的 - 我理想的查詢不需要靈活處理未定數量的不同顏色;假設總是隻有兩種顏色,我100%可以。
另外 - 在這種情況下,我使用的是SQL Server,如果解決方案使用特定的東西,我很好。 (當然,通用的SQL解決方案會更好......)
在此先感謝!
JW - 一個偉大的答案感謝!看起來你,XLAnt和JW都有同樣的答案;如果你不介意,我會得到XLAnt的複選標記,因爲看起來你需要的分數低於他/她。讓我知道如果這不公平。 – mattstuehler 2013-03-05 15:54:34