Mysql 获取同一表中两列之间的引用数
我有一个问题,就是如何获取MySQL中两列之间某个值的出现次数Mysql 获取同一表中两列之间的引用数,mysql,sql,database,select,count,Mysql,Sql,Database,Select,Count,我有一个问题,就是如何获取MySQL中两列之间某个值的出现次数 id1 col1 col2 2 5 3 3 3 4 4 2 1 5 1 3 6 null 2 我怎样才能得到下面两列之间发生的次数 value occurrence 3 3 1 2 2 2 4 1 5
id1 col1 col2
2 5 3
3 3 4
4 2 1
5 1 3
6 null 2
我怎样才能得到下面两列之间发生的次数
value occurrence
3 3
1 2
2 2
4 1
5 1
您可以
联合所有列
,然后应用计数
聚合函数:
SELECT val, COUNT(*) AS occurrence
FROM (SELECT col1 AS val
FROM mytable
UNION ALL
SELECT col2 AS val
FROM mytable) x
GROUP BY val
ORDER BY occurrence DESC
根据实际数据(每个值的行数),预聚合可能更有效,只需尝试一下:
SELECT val, SUM(occurrence) AS occurrence
FROM (SELECT col1 AS val, COUNT(*) AS occurrence
FROM mytable
UNION ALL
SELECT col2 AS val, COUNT(*) AS occurrence
FROM mytable) x
GROUP BY val
ORDER BY occurrence DESC
非常感谢你!我一直在努力,直到今天。