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
我有以下 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