RANK
説明
RANK
は、グループ内の各行にランキング番号を割り当てるために使用されるウィンドウ集計関数です。複数の行のランキングが同じ (同じである) 場合、同じ順位の行に同じランキング値が割り当てられ、後続のランク付け位置はスキップされます。次の基準
PARTITION BY
句は、入力行のセットをグループに分割するために使用するフィールドを決定します。次の基準
ORDER BY
句は、ランク付けされる前に、パーティション内の行の順序を決定します。Workday は、分割フィールドに基づいて入力行をグループに分割し、順序付けフィールドに従って行を並べ替え、各グループについて集計式 (この関数の順位) を計算します。各グループ内のランク付け済行は 1 から開始します。
構文
RANK()OVER(PARTITION BYpartitioning_field[,partitioning_field]ORDER BYordering_field[ASC | DESC] [,ordering_field[ASC | DESC]] )
戻り値
型の値を返します
Integer
。入力パラメータ
- OVER()
- 必須のコンテンツ。OVER"" 内で使用する必要がありますRANK式
- PARTITION BYdepartment_field
- 必須のコンテンツ。使用先PARTITION BY句: 入力行のグループを分割するために使用する 1 つ以上のフィールドを指定します。"通貨" を除く任意のフィールド タイプを指定できます。例: "月" フィールドを分割フィールドとして指定すると、"月" の値が同じすべてのレコードが 1 つの分割にグループ化されます。
- ORDER BYordering_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 |
同じ順位の値には同じ順位が割り当てられ、次の順位の位置はスキップされていることに注意してください。