2

テーブルのさまざまな列にあるすべての数値をマージし、それらの出現の合計を見つけるには、SQL クエリが必要です。

私のテーブル構造はこのようなものです

id | Pick1 | Pick2 | Pick3 | Pick4 | Pick5 | Pick6 |
----------------------------------------------------
 1 | 1     |  23   |  56   |  56   |   78  |  89   |
----------------------------------------------------
 2 | 9     |  49   |  90   |  56   |   78  |  89   |
----------------------------------------------------
 3 | 2     |  65   |  56   |  56   |   78  |  89   |
----------------------------------------------------
 4 | 1     |  23   |  23   |  56   |   78  |  89   |

期待される結果

Number | Frequency
-------------------
  23   |  5
-------------------
  56   |  7
-------------------
  89   |  4
....

誰でも助けることができますか?

4

3 に答える 3

0

UNION ALLサブクエリで使用するすべてのレコードを結合する必要があります。これを試して、

SELECT x.a `Number`, 
       COUNT(x.a) `Frequency`
FROM
(
    SELECT Pick1 a
    FROM TableNAME
    UNION ALL
    SELECT Pick2 a
    FROM TableNAME
    UNION ALL
    SELECT Pick3 a
    FROM TableNAME
    UNION ALL
    SELECT Pick4 a
    FROM TableNAME
    UNION ALL
    SELECT Pick5 a
    FROM TableNAME
    UNION ALL
    SELECT Pick6 a
    FROM TableNAME
) x
GROUP BY x.a
于 2012-09-11T09:12:44.340 に答える
0
SELECT pick AS `Number`,
       COUNT(1) AS Frequency
FROM(
     SELECT Pick1 AS pick
     FROM table_name
     UNION ALL
     SELECT Pick2 AS pick
     FROM table_name
     SELECT Pick3 AS pick
     FROM table_name
     SELECT Pick4 AS pick
     FROM table_name
     SELECT Pick5 AS pick
     FROM table_name
     SELECT Pick6 AS pick
     FROM table_name
    ) a
 GROUP BY a.pick;
于 2012-09-11T09:13:42.473 に答える
0

次のような構造にテーブルを再編成できれば、はるかに簡単になります。

id | pick | nr
------------------
1    1       1  
1    2      23
1    3      56

このような表では、数値を簡単にグループ化して数えることができます。あなたのプロジェクトでこのようなテーブル構造を変更することは可能でしょうか?

あるいは、それが不可能な場合は、この構造にデータを配置するヘルパー ビューを作成し、この結果をさらに処理するために取得することもできます。このようなビューは、6 つの select ステートメントの UNION を使用して作成できます。これについてさらにサポートが必要な場合はお知らせください。

于 2012-09-11T09:19:43.170 に答える