mysql - 从不同列中选择唯一值

标签 mysql

我有一个包含 5 个不同列的表:

vote_1, vote_2, vote_3, vote_4 and vote_5

对于每一行,这些列都包含一个名称,我现在要做的是获取上述任何列中每个值出现的总次数。

最终结果应该是这样的:

Value1 | 30

Value2 | 25

.....

如何在单个 SQL 查询中实现这一点?

最佳答案

使用 UNION 将多列合并为一列。然后是 GROUPCOUNT

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/

相关文章:

mysql - Php/Mysql Union 和 Limit offset

MySQL SELECT 有数据时返回空集

php - 从已输入关键字的下一行获取数据

javascript - 使用 Onsubmit 从表单调用 Javascript

PHP bindParam 似乎不适用于 PARAM_INT 输出参数

java - 缓存 JDBC 连接

php - "No database selected"错误,即使在选择了数据库之后

mysql - cakephp 用于多个连接和聚合函数的结果集...即复杂查询

mysql - 无法在 Mac OS X 上安装 mysql gem

mysql - 数据库性能改进