SELECT empno, deptno
dense_rank() OVER (PARTITION BY deptno
ORDER BY sal NULLS LAST) SRLNO
FROM emp
WHERE deptno IN (10, 20)
group by empno, deptno --,sal
ORDER BY deptno, SRLNO;
Sal
이 group by 절에 있어야하므로이 쿼리가 작동하지 않았습니다. 누구나 왜 그런지 설명 할 수 있고, 그룹 별 절을 변경하지 않고 동일한 선택에서 순위를 얻는 대안이 있습니까? 급여만으로 순위를 주문하고 싶습니다.오라클의 dense_rank() 분석 함수
SELECT empno, deptno,sum(sal)
dense_rank() OVER (PARTITION BY deptno
ORDER BY sal NULLS LAST) SRLNO
FROM emp
WHERE deptno IN (10, 20)
group by deptno,commision --,sal
ORDER BY deptno, SRLNO;
:
가 emp 테이블의 다른 열 이름 commision이고 내가 DEPTNO에 의해서만 DEPTNO와 commision 및 파티션에 의해 그룹에 있다고 가정하자 편집, 그래서 제안 된 해답이 될 것입니다어떻게 지금 deppt와 commision으로 그룹화하고 deptno로 파티션 만 할 수 있습니까?
다른 ON I GROUP BY 열 및 RANK 찾기 ON differnt 한 열을 기준으로 파티션에 기반 할 수있는 방법
: 솔루션을 주셔서 감사합니다,하지만 내가 어떻게 그룹을 다른 열 및 다른 파티션에 따라 순위를 찾을 수에 의해 할 수 있습니까? –
@ user1138658 - 내가 편집 한 것처럼, 다른 입도를 가지고 있다면 '이상'을 사용하고 싶을 것입니다. 일단'over' 세계로 향하면,'group by '을 피하고 싶습니다. (할 수 있습니다, 정말 까다 롭습니다). – Eric
: 동의 해 주셔서 감사합니다 :) –