2014-06-24 7 views
0

테이블 호출 클라이언트가 있다고 가정합니다. 이 표에 I 3 개 필드 (A는 B, C) 내가 각 행 그룹 싶은이 때의 값 = B = C 예 :값이있는 MySQL 그룹 필드

A B C otherRow 
1 2 3 x 
2 1  x 
4 2  y 

내가 folowing

얻을하고자
(A,B,C) otherRow Count 
    1  x   2 
    2  x   2 
    2  y   1 
    3  x   1 
    4  y   1 
+0

'otherRow'는 어디에 있나요? –

답변

3

조회에서 UNION하지 JOIN입니다 :

SELECT 
    `A,B,C`, 
    otherRow, 
    COUNT(`A,B,C`) AS `Count` 
FROM 
    (SELECT a AS `A,B,C`, otherRow FROM t 
    UNION ALL 
    SELECT b AS `A,B,C`, otherRow FROM t 
    UNION ALL 
    SELECT c AS `A,B,C`, otherRow FROM t) AS u 
GROUP BY 
    `A,B,C`, 
    otherRow 
HAVING 
    `A,B,C` IS NOT NULL 

확인이 fiddle. NULL -check을 추가했습니다. "빈 값"이 무엇인지 분명하지 않기 때문입니다. 그것을 제거하면 NULL- 행의 개수가 0이됩니다.