2016-04-29 51 views
0

我有一個查詢如何將列名轉移到MySQL中的結果集?

SELECT 
    count(CASE WHEN fan_gate.genre = 'Breaks' THEN fan_gate.id END) AS 'Breaks', 
    count(CASE WHEN fan_gate.genre = 'Cill Out' THEN fan_gate.id END) AS 'Chill Out', 
    count(CASE WHEN fan_gate.genre = 'Deep House' THEN fan_gate.id END) AS 'Deep House', 
    count(CASE WHEN fan_gate.genre = 'Drum & Bass' THEN fan_gate.id END) AS 'Drum & Bass' 
FROM fan_gate 

當前結果集

Breaks | Cill Out |Deep House |Drum & Bass 
------------------------------------------------ 
    4581 | 785 | 7858  | 4474 

我需要

Column 1 | column 2 
----------------------- 
Breaks  | 4581 
Cill Out | 785 
Deep House | 7858 
Drum & Bass | 4474 
+0

您是否需要使用back-ticks來分隔列別名? – jarlh

回答

1

你只是想group by

SELECT fg.genre, COUNT(*) 
FROM fan_gate fg 
GROUP BY fg.genre; 

如果您只關心這四種流派,請在GROUP BY之前添加WHERE條款以選擇您所關心的條目。

0
SELECT fan_gate.genre as column1,count(fan_gate.genre) as column2 
FROM fan_gate 
group by fan_gate.genre 
+0

請添加一些基本描述來描述您的答案背後的邏輯。 –