我有一个包含 5 个不同列的表:
vote_1, vote_2, vote_3, vote_4 and vote_5
对于每一行,这些列都包含一个名称,我现在要做的是获取上述任何列中每个值出现的总次数。
最终结果应该是这样的:
Value1 | 30
Value2 | 25
.....
如何在单个 SQL 查询中实现这一点?
最佳答案
使用 UNION
将多列合并为一列。然后是 GROUP
和 COUNT
。
select vote, count(*) as cnt
from (
select vote_1 as vote from mytable
union all select vote_2 as vote from mytable
..
union all select vote_N as vote from mytable
) sub
group by vote
关于mysql - 从不同列中选择唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169085/