関数の使用複数選択19 / 50 問

Oracle AI Database 26aiで追加された初期化パラメータGROUP_BY_POSITION_ENABLEDについて、正しい記述はどれですか。2つ選択してください。

Aデフォルト値はFALSEである✓
BALTER SESSION文でセッション単位に変更できる✓
CTRUEの場合、HAVING句でも列番号で条件を指定できる
DFALSEの場合、GROUP BY句で列別名を使用できない
正解:A・B解説

GROUP_BY_POSITION_ENABLEDは、GROUP BY句に指定した正の整数を、SELECT句の何番目の列番号として扱うかどうかを制御する初期化パラメータです。
パラメータの概要

項目内容
データ型Boolean(TRUE/FALSE)
デフォルト値FALSE
変更方法ALTER SESSION、ALTER SYSTEM

TRUEにした場合の例

ALTER SESSION SET group_by_position_enabled = TRUE;

SELECT department_id, COUNT(*)
FROM employees
GROUP BY 1;

GROUP BY 1は、SELECT句の1番目の式(department_id)でグループ化するという意味になります。

-- 列別名はパラメータの設定に関係なく使用できる
SELECT department_id dept_id, COUNT(*)
FROM employees
GROUP dept_id;

ORDER BY句の列番号(ORDER BY 1)は26ai以前から使用でき、パラメータの影響を受けない点もあわせて押さえておきましょう。

前後の問題