mysql 按多列中的值进行分组

标签 mysql sql group-by

    code1 | code2 | code3 | code4 | code5
row1    A       B       C
row2    B       A       D        E
row3   F       C 

如何将此表与 codeX 列中的值计数分组 所以

A: 2
   B: 2
   C: 2
   D: 1
   E: 1
   F: 1

最佳答案

如果我理解正确的话,您需要一个出现某些内容的列的列表。您可以使用 group_concat 取消数据透视表:

select code, count(*) as cnt, group_concat(which)
from (select code1 as code, 'code1' as which from table union all
      select code2, 'code2' as which from table union all
      select code3, 'code3' as which from table union all
      select code4, 'code4' as which from table
     ) c
where code is not null
group by code;

我使用了完整的列名而不是#1——它似乎更有用。但您可以为 which 输入 #1 等。

关于mysql 按多列中的值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432172/

相关文章:

mysql - 根据特定的 meta_key 和 meta_value 过滤帖子元

Mysql 计数列大于 0

mysql - 查询连接同表错误

php - 从多个用户的两个表中减去两个分数。 mysql

sql - 列表从多到少排序;制作家庭电影最多的创作者将名列榜首

java.sql.SQLTransactionRollbackException : At least one parameter to the current statement is uninitialized 异常

sql - 计算字符串中的空格数

c# - 如何在子组上使用 GroupBy

r - ggplot2:为每组平均值添加线(错误:没有名为 StatHline 的统计数据。)

mysql - MySQL如何返回第一个空格后的字符串