2016-04-29 52 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

请添加一些基本描述来描述您的答案背后的逻辑。 –