mysql 按相同值的 2 列分组

mysql group by 2 columns on same value

我有以下 table :

 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 吗?

您可以使用 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