宣言
CUME_DIST() OVER ([query_partition_clause] order_by_clause)
説明
この関数は、グループ(パーティション)内の行の累積分布値を計算するために使用され、0 より大きく 1 以下の値を返します。これは、ソート後の現在の行の位置(そのデータより小さいか等しい行数)とパーティション内のすべての行の合計数との比率を計算することで、行の累積分布値を決定します。
例
テーブル
employeesを作成します。CREATE TABLE employees(last_name CHAR(10), salary DECIMAL, job_id CHAR(32));テーブル
employeesにテストデータを挿入します。INSERT INTO employees VALUES('TOM', 11000, 'ENGINEERING'); INSERT INTO employees VALUES('IRIS', 11000, 'ENGINEERING'); INSERT INTO employees VALUES('MIKE', 12000, 'ENGINEERING'); INSERT INTO employees VALUES('LILY', 13000, 'ENGINEERING'); INSERT INTO employees VALUES('JIM', 2000, 'CLEANER');job_idでグループ化し、給与が昇順に並べられた場合、各行データのウィンドウ内のソート列に占める割合を計算します。SELECT last_name, CUME_DIST() OVER(PARTITION BY job_id ORDER BY salary) CUME_DIST FROM employees;実行結果は次のとおりです:
+-----------+-----------+ | last_name | CUME_DIST | +-----------+-----------+ | TOM | 0.5 | | IRIS | 0.5 | | MIKE | 0.75 | | LILY | 1 | | JIM | 1 | +-----------+-----------+ 5 rows in set