2.149 GROUP_BY_POSITION_ENABLED
GROUP_BY_POSITION_ENABLED
は、GROUP
BY
句内の正の整数を、選択リスト内の式の順序を示す位置として処理するかどうかを制御します。
特性 | 説明 |
---|---|
パラメータ・タイプ |
ブール値 |
デフォルト値 |
|
変更可能 |
|
PDBで変更可能 |
はい |
値の範囲 |
|
基本 |
いいえ |
Oracle RAC |
すべてのインスタンスで同じ値を使用する必要がある。 |
SQLのSELECT
文では、式の共通値を共有する選択した行をグループ化し、グループごとに1行のサマリー情報返す場合に、GROUP
BY
句を指定できます。
以前のリリースでは、選択リスト内の式の値に従って行をグループ化する場合、選択リストに表示されたとおりに式を指定していました。次にその例を示します。
SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id;
Oracle Database 23ai以降では、GROUP_BY_POSITION_ENABLED
がTRUE
に設定されている場合はGROUP
BY
position
を指定できます(position
は選択リスト内の式の順序位置を表す正の整数)。たとえば、次に示すSELECT
文は、選択した行をdepartment_id
の値でグループ化します。
SELECT department_id, COUNT(*)
FROM employees
GROUP BY 1;
次のSELECT
文は選択した行を、まずmanager_id
の値でグループ化し、次にhired_year
の値でグループ化します。
SELECT manager_id, EXTRACT(YEAR FROM hire_date) AS hired_year, COUNT(*)
FROM employees
GROUP BY 1, 2;
ノート:
このパラメータは、Oracle Database 23ai以降で使用できます。
関連項目:
SELECT
文のGROUP
BY
句の詳細は、『Oracle Database SQL言語リファレンス』を参照してください