我有一张这样的表
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它们,但它不像我想要的那样工作
任何想法?谢谢你的帮助
答案 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
上试用