我的数据库有几列,有些列有数字数据。 我想选择特定的列并将它们组合成一列。 然后我想根据计数从中选择前3个数字。
-----------------------------
PCM | M4 | DS | VR1
-----------------------------
45 | 34 | 22 | 117
34 | 201 | 7 | 393
1 | 117 | 73 | 7
45 | 55 | 7 | 43
所以我会选择PC
,M4
,DS
,VR1
列并返回:
------------------
col | col_count
------------------
7 | 3
45 | 2
34 | 2
如果可能,我想在单个SQL查询中获取计数(频率)。如果没有两个会好的。
答案 0 :(得分:1)
SELECT TOP 3 col
, COUNT(col)
FROM (
SELECT PCM AS col FROM tbl
UNION ALL
SELECT M4 FROM tbl
UNION ALL
SELECT DS FROM tbl
UNION ALL
SELECT VR1 FROM tbl ) t
GROUP BY col
ORDER BY COUNT(col) DESC