【问题标题】:mysql group by 2 columns on same valuemysql按相同值的2列分组
【发布时间】:2016-11-30 08:59:15
【问题描述】:

我有下表:

 ID    custom_1                 custom_2
+----+------------------------+------------------------
 1     value_1                  NULL
 2     value_2                  value_1
 3     value_3                  value_4
 4     NULL                     value_4

我想构建一个查询来获取以下输出:

  value                    count
+------------------------+------------------------
  value_1                  2
  value_2                  1
  value_3                  1
  value_4                  2

我知道我可以 GROUP BY 几个字段,但我认为在这种情况下这不是这样做的方法。我必须使用 UNION 吗?

【问题讨论】:

    标签: mysql sql select group-by multiple-columns


    【解决方案1】:

    您可以使用union all 运算符在单个结果列中获取两列,然后按它进行分组:

    SELECT   custom, COUNT(*)
    FROM     (SELECT custom_1 AS custom
              FROM   mytable
              UNION ALL
              SELECT custom_2 AS custom
              FROM   mytable) t
    GROUP BY custom
    

    【讨论】:

    • 好的,我试试。你知道如何在 DQL 中构建这个原始查询吗? (学说查询语言)
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2014-07-24
    • 1970-01-01
    • 2015-08-29
    • 2021-06-25
    相关资源
    最近更新 更多