Oracle23c: GROUP BY句およびHAVING句の向上による問合せ開発の簡略化 (2023/07/25)
Oracle23c: GROUP BY句およびHAVING句の向上による問合せ開発の簡略化 (2023/07/25)
投稿者:vijay balebail
Flamboyance of Flamingoesはじめに
Oracle23cは、問合せ開発を大幅に合理化し、SQL文の可読性を向上させる、エキサイティングな新しい拡張機能を提供します。以前のデータベース・リリースでは、開発者はGROUP BY句およびHAVING句の列定義を繰り返し参照する必要がありましたが、これは煩雑でエラーが発生しやすくなりました。ただし、Oracle23cを使用すると、開発者はこれらの句で列の別名を使用できるようになり、問合せがより簡潔になり、解釈しやすくなりました。さらに、OracleではGROUP BY句およびORDER BY句での列位置のサポートが導入され、問合せ書込みの全体的な柔軟性が向上しています。
GROUP BY句およびHAVING句の簡略化
以前のリリースのサンプル問合せを見てみましょう。
SELECT object_name,object_type,
to_char(created,'YYYY-MM-DD HH24') as CREATEDi_ALIAS, count(1) as COUNT
FROM all_objects
GROUP BY object_name, object_type, to_char(created,'YYYY-MM-DD HH24')
HAVING count(1) > 10
ORDER BY COUNT
FETCH FIRST 20 ROWS ONLY;
この例では、to_char(作成日、YYYY-MM-DD HH24)でグループ化し、HAVING句でcount(1)を使用します。ただし、Oracle23cでは、GROUP BY句およびHAVING句で列の別名を直接利用できるようになりました。
SELECT object_name,object_type,
to_char(created,'YYYY-MM-DD HH24') as CREATED_ALIAS, count(1) as COUNT
FROM all_objects
GROUP BY object_name, object_type, CREATED_ALIAS
HAVING COUNT > 10
ORDER BY COUNT
FETCH FIRST 20 ROWS ONLY;
この改善により、問合せが簡略化され、開発者が理解しやすくなります。
列位置句を使用したGROUP BY
Oracle Databaseでは、常に別名と列の位置を使用して、ORDER BYを使用してデータをソートできました。Oracle23cでは、GROUP BY句で列の位置もサポートされるようになりました。前述の例に示すように、別名で参照されるtime1列で結果をGROUPにすることができます。ただし、Oracleでは、GROUP BY句での列位置のサポートもさらに一歩進んでいます。この機能を有効にするには、group_by_position_enabledパラメータをtrueに設定する必要があります。(デフォルトはFALSE)
セッション・レベルまたはシステム・レベルでパラメータを設定します。
ALTER SESSION SET group_by_position_enabled = true;
ALTER SYSTEM SET group_by_position_enabled = true;
このパラメータを有効にすると、列位置を
GROUP BY句。次に例を示します。
SELECT object_name,object_type,
to_char(created,'YYYY-MM-DD HH24') as CREATED_ALIAS, count(1) as COUNT
FROM all_objects
GROUP BY 1,2,3
HAVING COUNT > 10
ORDER BY COUNT
FETCH FIRST 20 ROWS ONLY;
まとめ
Oracle23cで導入された機能拡張により、より直感的で効率的な問合せ開発が可能になります。開発者は、GROUP BY句およびHAVING句で列の別名を使用することで、わかりやすく簡潔なSQL文を記述できます。さらに、GROUP BY句およびORDER BY句での列位置のサポートによって、問合せ書込みの柔軟性がさらに向上します。
これらの改善により、Oracle23cは開発者にとって使いやすいプラットフォームとなり、別名機能をサポートする他のデータベースからの移行プロセスが容易になります。Oracle23cを使用すると、開発者は、様々なプラットフォームへの問合せの適応に集中でき、最終的にはアプリケーションの移行および開発エクスペリエンスが向上します。
コメント
コメントを投稿