mysql,将两列数据合并为一个

时间:2013-07-15 22:57:35

标签: mysql

我有一张这样的表

id    genre    genre2
1      25        0
2      12        25
3      25        12
4      18        17
5      19        14

我希望计算不同类型的id和它们在两列中的计数但合并为一个

并想要一个像这样的结果

genre    count
25         3
12         2
18         1
19         1
17         1
14         1
0          1

我已经尝试了工会,并且计数,以及我想到的一切,但我无法实现我想要的结果,最接近的是制作两个查询和UNION它们,但它不像我想要的那样工作

任何想法?谢谢你的帮助

1 个答案:

答案 0 :(得分:7)

您必须使用UNION ALL代替UNION

SELECT
genre, COUNT(*) cnt
FROM
(SELECT genre FROM tbl
UNION ALL
SELECT genre2 FROM tbl) a
GROUP BY genre
ORDER BY cnt DESC

您可以在 SQL FIDDLE

上试用