2012-09-11 5 views
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 
.... 

누군가가 도와 드릴까요처럼?

답변

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 
을 시도
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; 
0

다음과 같은 struture로 테이블을 다시 구성 할 수 있다면 그것은 훨씬 쉬울 것 : 같은 테이블에서

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

, 당신은 쉽게 할 수 그 숫자를 세 어라. 프로젝트에서이 테이블 구조를 변경할 수 있습니까?

또는 가능하지 않은 경우이 구조에서 데이터를 정렬하는 도우미 뷰를 만든 다음이 결과를 이후 처리에 사용할 수 있습니다. 이러한 뷰는 6 개의 SELECT 문의 UNION을 사용하여 구성 할 수 있습니다. 이에 대한 추가 지원이 필요하면 알려 주시기 바랍니다.