説明
この関数は分析関数であり、順序付き値のセットの最後の値を返します。セット内の最後の値がNULL場合、この関数はNULL返します。ただし、データのコンパクショニングに役立つIGNORE NULLS指定した場合はこの限りではありません。
構文
LAST_VALUE { (expr) [{RESPECT | IGNORE} NULLS ]
| (expr [{RESPECT | IGNORE} NULLS ])
}
OVER (analytic_clause)
パラメータの説明
| パラメータ | 説明 |
|---|---|
| expr | シーケンスを指定します。 注意 expr に LAST_VALUE またはその他の分析関数を使用して、分析関数をネストすることはできません。 |
| {RESPECT | IGNORE} NULLS | NULL 値を無視するかどうかを示します。オプションです。デフォルト値は RESPECT NULLS です。
|
| OVER | OVER 句を使用してウィンドウを定義し、計算を行います。詳細については、分析関数の説明を参照してください。 |
戻り値の型
戻り値はexprのデータ型と同じか、またはNULL返します。
例
既に作成されたテーブル emp_msg があります。emp_msg テーブルのデータを列 sal で昇順にソートし、列 MGR の最後の非NULL値を last_MGR 列として返します。
obclient> SELECT * FROM emp_msg;
+--------+--------+------+------+
| DEPTNO | ENAME | SAL | MGR |
+--------+--------+------+------+
| 10 | CLARK | 2750 | 7839 |
| 10 | KING | 5300 | NULL |
| 10 | MILLER | 1600 | 7782 |
| 20 | ADAMS | 1400 | 7788 |
| 20 | FORD | 3300 | 7566 |
| 20 | JONES | 3275 | 7839 |
| 20 | SCOTT | 3300 | 7566 |
| 20 | SMITH | 1100 | 7902 |
| 30 | ALLEN | 1900 | 7698 |
| 30 | BLAKE | 3150 | 7839 |
| 30 | JAMES | 1250 | 7698 |
| 30 | MARTIN | 1550 | 7698 |
| 30 | TURNER | 1800 | 7698 |
| 30 | WARD | 1550 | 7698 |
| 30 | SCLARK | 1750 | 7839 |
+--------+--------+------+------+
15 rows in set
obclient> SELECT deptno,ename,sal,MGR,
LAST_VALUE ( MGR ) IGNORE NULLS OVER (ORDER BY sal ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS last_MGR
FROM emp_msg;
+--------+--------+------+------+----------+
| DEPTNO | ENAME | SAL | MGR | LAST_MGR |
+--------+--------+------+------+----------+
| 20 | SMITH | 1100 | 7902 | 7566 |
| 30 | JAMES | 1250 | 7698 | 7566 |
| 20 | ADAMS | 1400 | 7788 | 7566 |
| 30 | MARTIN | 1550 | 7698 | 7566 |
| 30 | WARD | 1550 | 7698 | 7566 |
| 10 | MILLER | 1600 | 7782 | 7566 |
| 30 | SCLARK | 1750 | 7839 | 7566 |
| 30 | TURNER | 1800 | 7698 | 7566 |
| 30 | ALLEN | 1900 | 7698 | 7566 |
| 10 | CLARK | 2750 | 7839 | 7566 |
| 30 | BLAKE | 3150 | 7839 | 7566 |
| 20 | JONES | 3275 | 7839 | 7566 |
| 20 | FORD | 3300 | 7566 | 7566 |
| 20 | SCOTT | 3300 | 7566 | 7566 |
| 10 | KING | 5300 | NULL | 7566 |
+--------+--------+------+------+----------+
15 rows in set