2014-04-12 2 views
0

모든 행을 최대로 선택해야합니다.MAX와 COUNT를 사용하는 SQL

I이 사용하고 있습니다 :

SELECT TMP.S, MAX(TMP.my_count) 
FROM (
    SELECT T1.something S, COUNT(*) my_count 
    FROM table T1, table2 T2 
    WHERE T1.value = T2.value 
    GROUP BY T1.something) TMP 
GROUP BY TMP.S 

그러나이 같은 결과로 끝로만이 :

SELECT T1.something, COUNT(*) my_count 
FROM table T1, table2 T2 
WHERE T1.value = T2.value 
GROUP BY T1.something 
내가 ROWNUM = 1ORDER BY my_count DESC을 사용할 수

,하지만 그건 내 문제가 해결되지 않는, 왜냐하면 같은 값을 가지고 있다면 모든 최대 값을 선택해야하기 때문입니다. 당신의 Where 상태

+0

T는 더 테이블의 별칭 것 같다! –

+0

작은 실수 –

답변

1

사용 Max는 :

SELECT TMP.S, TMP.my_count 
FROM (
     SELECT T1.something S, COUNT(*) my_count 
     FROM table T1, table2 T2 
     WHERE T1.value = T2.value 
     GROUP BY T1.something 
    ) TMP 
Where 
TMP.my_count = (select max(count(*)) from table1 T3 group by t3.something) 
관련 문제