SQL の改善¶
Snowflakeでは、クエリをより簡単に記述できるような機能強化を継続的に行っています。これらの新しいキーワードや関数を使えば、よりシンプルで短い SELECT ステートメントを記述できます。
2025年の SQL 改善¶
2025年には以下の SQL の改善が導入されました。
| リリース日 | 改善 | 影響 | 
|---|---|---|
| 2025年9月 | この SQL 機能は、連続的に均一にサンプリングされた時系列データの生成プロセスを簡素化します。 | |
| 2025年8月 | 結合順序のプレビューサポート。:doc:`JOIN </sql-reference/constructs/join>`句を含むクエリを実行するとき、:code:`DIRECTED`キーワードを追加することで結合順序を強制できます。 | 結合順序ディレクティブを持ち、特定の順序で結合テーブルをスキャンすることでパフォーマンスが向上する可能性のあるワークロードを、Snowflakeへ簡単に移行することができます。 | 
| 2025年7月 | :doc:`ORDER BY ALL </sql-reference/constructs/order-by>`句を指定し、SELECTリストで指定されたすべての列でソートすることができます。 | 各列を名前で指定しなくても、SELECTリストのすべての列で結果をソートできます。 | 
| 2025年6月 | :ref:`UNION BYNAME演算子<label-query_operators_union>`を使用し、位置ではなく名前で行を結合できます。 | UNION BY NAME演算子は、テーブル内で異なる位置にある列のサブセットの結合を簡素化します。 | 
| 2025年5月 | パイプ演算子 ( | パイプ演算子は、依存するSQLステートメントの実行を簡素化し、複雑なSQL操作の可読性と柔軟性を向上させることができます。 | 
| 2025年3月 | スプレッド演算子 ( | スプレッド演算子は、変数の値を受け取る関数コールやクエリを簡素化することができます。詳細については、 Snowflake Introduces SQL Spread Operator (**) のブログ記事をご覧ください。 | 
| 2025年2月 | SEARCH 関数は接続(AND)セマンティクスに対応するようになります。 | SEARCH_MODE引数に  | 
| 2025年1月 | ARRAY_AGG 関数での行ベースおよび範囲ベースのウィンドウフレームのサポート。 | ユーザーは、移動ウィンドウフレームの値を配列に収集することにより、データのサブセットを集計することができます。 | 
2024年の SQL 改善¶
2024年には以下の SQL の改善が導入されました。
| リリース日 | 改善 | 影響 | 
|---|---|---|
| 2024年10月 | ステージ上のファイルで最大128MBまでのオブジェクトに対するクエリをサポート。 | 列に格納する前に、オブジェクトのサイズをより簡単に縮小できます。また、9.17リリースでは、16MBよりも大きなオブジェクトを列に格納できるようになりました。詳細については:ref:`label-size_limits_for_database_objects`をご覧ください。 | 
| 2024年10月 | ラムダ式を使って半構造化データや構造化データを削減し、簡潔で読みやすく、効率的な方法でデータ操作や高度な分析を実行できます。 | |
| 2024年9月 | 表形式データを返す ストアドプロシージャからの選択 のサポート。 | 結果をテーブルに保存する SQL ステートメントを簡略化できます。たとえば、 RESULT_SCAN 関数で SQLID Snowflake Scripting変数を使用してクエリ結果を含むテーブルを作成するのではなく、結果から直接選択するクエリを使用することができます。 | 
| 2024年9月 | RANGE BETWEEN ウィンドウフレームに明示的なオフセット (n PRECEDING および n FOLLOWING)を持つ、 FIRST_VALUE および LAST_VALUE ウィンドウ関数が含まれるように拡張されたプレビューサポート。 | 時系列データセットにおいて、予期される、あるいは予期されない記録欠落によってギャップが発生した場合に、追加関数を使用して移動集計を実行することができます。 | 
| 2024年8月 | VARIANT、 OBJECT、 ARRAY 列のフィールドを含む、1つまたは複数のテーブルから、指定した列の文字データ(テキスト)と IPv4 アドレスを検索できます。 | |
| 2024年8月 | 関数呼び出し および オブジェクト定数 における SELECT リストまたは GROUP BY 句でのフィルタリングのための、 ILIKE および EXCLUDE キーワードの使用のサポート。 | 関数コールやオブジェクト定数では、パターンにマッチする列をフィルターしたり、特定の列を除外したりすることができます。 | 
| 2024年7月 | SELECT リストまたは GROUP BY 句でのフィルタリングのために、 OBJECT 定数 におけるワイルドカード指定のサポート。 | 属性名をキーとし、関連する値を値として、指定されたデータから OBJECT 値を構築できます。 | 
| 2024年6月 | RANGE BETWEEN ウィンドウフレームに明示的なオフセット (n PRECEDING および n FOLLOWING)を持つ、 AVG、 COUNT、 MIN、 MAX、および SUM ウィンドウ関数が含まれるプレビューサポート。 | 時系列データセットにおいて、予期される、あるいは予期されない記録欠落によってギャップが発生した場合に、移動集計をより簡単に実行することができます。 | 
| 2024年5月 | UNPIVOT サブ句で  | SQL ステートメントで UNPIVOT サブ句を使用すると、より柔軟性が増します。 | 
| 2024年5月 | テーブル、ビュー、セキュアビュー、クエリへの参照を取得し、 FROM 句でクラス内のメソッドを呼び出す TABLE キーワードの使用がサポートされました。 | TABLE キーワードを使えば、よりシンプルな SQL ステートメントを記述できます。 | 
| 2024年5月 | 新しい ASOF JOIN 構文。 | よりシンプルな SQL ステートメントを記述して、 時系列データ を含むテーブルを結合することができます。 | 
| 2024年5月 | ANY キーワードまたは PIVOT 構文によるサブクエリの指定がサポートされました。 | すべての異なる値、またはサブクエリによって返されるすべての値で簡単にピボットできます。 | 
| 2024年5月 | ラムダ式を使用すると、半構造化データや構造化データをフィルターしたり変換したりすることができるようになり、データ操作や高度な分析を実行するための簡潔で読みやすく、効率的な方法が得られます。 | |
| 2024年3月 | 新しい GREATEST_IGNORE_NULLS および LEAST_IGNORE_NULLS 関数。 | 式のリストから、最小と最大の非 NULL 値を返すことができます。 | 
| 2024年3月 | SELECT リストで後続カンマがサポートされました。 | SELECT リストの最後の列を削除または移動する場合、直前のカンマを削除する必要はありません。 | 
| 2024年2月 | 
 | 照合を変更しなくても、  | 
2023年の SQL 改善¶
2023年には以下の SQL の改善が導入されました。
| リリース日 | 改善 | 影響 | 
|---|---|---|
| 2023年8月 | 新しい ARRAY_MIN、 ARRAY_MAX、 ARRAY_SORT 関数。 | 最小値と最大値を持つ配列要素を簡単に選択できるようになりました。 要素のソートされた配列を簡単に取得できます。 | 
| 2023年8月 | SELECT コマンドの新しい ILIKE および REPLACE パラメーター。 | SQL ワイルドカードを含むパターンにマッチするすべての列を選択できるようになりました。 すべての列を選択する場合、特定の列の値を式で置き換えることができます。 | 
| 2023年7月 | GROUP BY 構文の新しい ALL キーワード。 | 各列を名前で指定しなくても、 SELECT リスト内のすべての非集計列で結果をグループ化できます。 | 
| 2023年2月 | ROUND 関数で銀行型丸め(端数が0.5のときに偶数に丸める)がサポートされました。 | 値の丸める際に銀行型丸めを使用できるようになりました。 | 
| 2023年1月 | ある列の最小値または最大値を含む行を見つけ、その値を別の列から取得することができます。 | 
2022年の SQL 改善¶
2022年には以下の SQL の改善が導入されました。
| リリース日 | 改善 | 影響 | 
|---|---|---|
| 2022年11月 | SELECT コマンドの新しい EXCLUDE および RENAME パラメーター。 | すべての列を選択し、特定の列を除外したり、列名を変更したりすることができます。 | 
| 2022年11月 | 新しい ARRAY_EXCEPT および ARRAY_DISTINCT 関数。 | ある配列にあって別の配列にない要素を、簡単に選択できるようになりました。 配列の異なる要素を簡単に取得できます。 | 
| 2022年5月 | 新しい REGEXP_SUBSTR_ALL 関数。 | 文字列から正規表現にマッチする部分文字列を簡単に抽出できるようになりました。 |