我有一个包含3列x,y,z的表格。行包含数据。有时会重复数据的价值。
需要知道重复哪些数据和计数。 这个简化的示例只有几个数据值。
实际上,该表有几个其他列和一个主键,通常没有 x,y,z中的数据。查询将通过php调用。
表:
x y z
a
b
c
a d
a
a b a
所需的MySQL查询结果:
Data Count
a 5
b 2
c 1
d 1
如果有人能提供帮助,我将不胜感激。现在已经和它斗争了好几个小时,并且无处可去。
干杯,
彼得
答案 0 :(得分:5)
您可以使用此解决方案:
SELECT a.data,
COUNT(*) AS Count
FROM (
SELECT x AS data FROM tbl WHERE x IS NOT NULL UNION ALL
SELECT y FROM tbl WHERE y IS NOT NULL UNION ALL
SELECT z FROM tbl WHERE z IS NOT NULL
) a
GROUP BY a.data
这会将所有三列中的值合二为一,这样它就变成了一个简单的GROUP BY
和COUNT
。