2014-07-17 2 views
1

오라클의 상위 10 개 항목 만 선택하고 올바르게 만들 수없는 쿼리를 만들어야합니다. 나는 계급 사용에 관해 읽었지만, 지금까지는 그것을 이해하지 못했습니다.오라클에서 상위 10 개만 선택하십시오.

select col , count(col) from table_name group by col 

답변

2

당신은 다른 일이 쿼리를 포장하고 rownum 의사 열 사용할 수 있습니다

SELECT col, cnt 
FROM (SELECT col , COUNT(col) AS cnt 
     FROM  table_name 
     WHERE col IS NOT NULL 
     GROUP BY col 
     ORDER BY 2 DESC) 
WHERE rownum <= 10 
+0

매우 가까운하지만 난 오류가 무엇입니까 것으로 보인다. "단일 그룹 그룹 기능이 아닙니다." 나는 명령문의 끝에 다른 그룹을 추가하는 것이 효과적 일 것이라고 생각했지만, 그 다음에는 각 열에 대해 하나의 열로 돌아 오게된다. – WeVie

+0

스크래치. 그것은 효과가있다. cnt에 입력 된 첫 번째 select 문이 잘못되었습니다. 이제 반환 된 최상위 값은 열의 모든 null/empty 값에 대한 것입니다. 나는 희망적으로 꽤 단순 할 것이라고 배제 할 필요가있다. – WeVie

+0

@WeVie 빈'col's를 제외하기 위해'where' 절이 추가되었습니다 - 트릭을해야합니다. – Mureinik

관련 문제