私はSQL分析関数に飛び込み始めたばかりで、FIRST_VALUEに少しこだわっています。おそらく、このサイトのクエリ例に固有のものである可能性があります。
-- How many days after the first hire of each department were the next
-- employees hired?
SELECT empno, deptno, hiredate ? FIRST_VALUE(hiredate)
OVER (PARTITION BY deptno ORDER BY hiredate) DAY_GAP
FROM emp
WHERE deptno IN (20, 30)
ORDER BY deptno, DAY_GAP;
EMPNO DEPTNO DAY_GAP
---------- ---------- ----------
7369 20 0
7566 20 106
7902 20 351
7788 20 722
7876 20 756
7499 30 0
7521 30 2
7698 30 70
7844 30 200
7654 30 220
7900 30 286
私はこのクエリの2つの部分で苦労しています。まず、「?」とは何ですか?ここで行って?これまで、パラメーター化されたクエリに使用されるのを見たことがあります。次に、DAY_GAPは実際にどのように計算されますか?クエリは、このクエリに基づいて日数の差を計算することをどのように知っていますか?それはhiredateのデータ型と関係がありますか?