0

x、y、z の 3 列のテーブルがあります。行にはデータが含まれています。データの値が繰り返される場合があります。

繰り返されるデータとその回数を知る必要があります。この単純化された例では、データの値がわずかしかありません。

実際には、テーブルには他にもいくつかの列と主キーがあり、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

誰かがそれを助けることができれば、それは大歓迎です。これで数時間戦っていますが、どこにも速くありません。

乾杯、

ピーター

4

1 に答える 1

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

これにより、3 つの列すべての値が 1 つにまとめられるため、単純なGROUP BYand になりCOUNTます。

于 2012-08-04T11:41:03.113 に答える