MySQL - 3列数据。需要计算所有3列共有的数据,以及数据本身

时间:2012-08-04 11:37:14

标签: php mysql

我有一个包含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

如果有人能提供帮助,我将不胜感激。现在已经和它斗争了好几个小时,并且无处可去。

干杯,

彼得

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 BYCOUNT