Oracleで「行融合」を実行しようとしています。つまり、行を返すクエリが必要です。これらの各行には、列ごとに、元々他の行に格納されていた値が含まれています。
たとえば(私はドキュメントEMP
に従っています)、従業員番号、部門番号、および給与を格納する従業員テーブルがあるとします。
部門と同じ数の行を返し、その部門の最高給与も返すクエリを作成するにはどうすればよいですか?
私はこのようなものが欲しい:
EMPNO DEPTNO SAL MAX_VAL_IN_DEPT
---------- ---------- ---------- -----------------
7934 10 1300 1300
7369 20 800 800
7900 30 950 950
SELECT empno
, deptno
, sal
, FIRST_VALUE(sal IGNORE NULLS) OVER (PARTITION BY deptno ORDER BY sal ASC NULLS LAST) AS first_val_in_dept
FROM emp;
は私が見つけることができる最も近いものですが、GROUP BY
追加できない追加のdeptno句が必要になります。