メインコンテンツにスキップ
Workday User Guide
最終更新: 2023-06-23
RANK

RANK

説明

RANK
は、グループ内の各行にランキング番号を割り当てるために使用されるウィンドウ集計関数です。複数の行のランキングが同じ (同じである) 場合、同じ順位の行に同じランキング値が割り当てられ、後続のランク付け位置はスキップされます。
次の基準
PARTITION BY
句は、入力行のセットをグループに分割するために使用するフィールドを決定します。
次の基準
ORDER BY
句は、ランク付けされる前に、パーティション内の行の順序を決定します。
Workday は、分割フィールドに基づいて入力行をグループに分割し、順序付けフィールドに従って行を並べ替え、各グループについて集計式 (この関数の順位) を計算します。各グループ内のランク付け済行は 1 から開始します。

構文

RANK
()
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

戻り値

型の値を返します
Integer

入力パラメータ

OVER()
必須のコンテンツ。
OVER
"" 内で使用する必要があります
RANK
PARTITION BY
department_field
必須のコンテンツ。使用先
PARTITION BY
句: 入力行のグループを分割するために使用する 1 つ以上のフィールドを指定します。"通貨" を除く任意のフィールド タイプを指定できます。例: "月" フィールドを分割フィールドとして指定すると、"月" の値が同じすべてのレコードが 1 つの分割にグループ化されます。
ORDER BY
ordering_field
必須のコンテンツ。使用先
ORDER BY
句。各分割内の指定されたフィールドの値を使用して、分割内の入力行を並べ替える方法を指定します。"通貨" を除く任意のフィールド タイプを指定できます。
次の操作ができます。
DESC
または
ASC
各順序フィールドを、降順 (値が高い順、NULL が最後になる) または昇順 (値が高い順、NULL が最初) でソートするキーワード。順序フィールドのソート順序を指定しない場合、行は自動的に昇順でソートされます。

例: これらの行とフィールドを含むデータセットがあります。
社員
販売日
Sales
ゴホ
12/31/2018
140
ゴホ
11/30/2018
60
ゴホ
10/31/2018
140
フリーマン
12/31/2018
160
フリーマン
11/30/2018
60
フリーマン
10/31/2018
110
セキュリティ
12/31/2018
140
セキュリティ
11/30/2018
60
セキュリティ
10/31/2018
120
各社員の売上は降順でランク付けできるため、最も売上が高い社員に 1 のランキングが付けられます。
"社員別売上ランキング" フィールドで
次の式を使用します。
RANK() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
以下の結果が得られます。
社員
販売日
Sales
社員別売上ランキング
ゴホ
12/31/2018
140
1
ゴホ
10/31/2018
140
1
ゴホ
11/30/2018
60
3
フリーマン
12/31/2018
160
1
フリーマン
10/31/2018
110
2
フリーマン
11/30/2018
60
3
セキュリティ
12/31/2018
140
1
セキュリティ
10/31/2018
120
2
セキュリティ
11/30/2018
60
3
各日付の売上を降順でランク付けすることもできます。これにより、最大の売上に 1 のランキングが付けられます。
"Range Sales by Date"
フィールドで、次の式を使用します。
RANK() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
以下の結果が得られます。
社員
販売日
Sales
日別売上ランキング
フリーマン
12/31/2018
160
1
ゴホ
12/31/2018
140
2
セキュリティ
12/31/2018
140
2
ゴホ
11/30/2018
60
1
フリーマン
11/30/2018
60
1
セキュリティ
11/30/2018
60
1
ゴホ
10/31/2018
140
1
セキュリティ
10/31/2018
120
2
フリーマン
10/31/2018
110
3
同じ順位の値には同じ順位が割り当てられ、次の順位の位置はスキップされていることに注意してください。