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

kas*_*ulo 3 mysql

我有一张这样的桌子

id    genre    genre2
1      25        0
2      12        25
3      25        12
4      18        17
5      19        14
Run Code Online (Sandbox Code Playgroud)

我想计算两个列中不同的流派id和它们的计数,但合并为一个

并希望得到这样的结果

genre    count
25         3
12         2
18         1
19         1
17         1
14         1
0          1
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?谢谢您的帮助

Ham*_*yan 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
Run Code Online (Sandbox Code Playgroud)

您可以在SQL FIDDLE上尝试它