Snowflakeでデータをクエリする

Snowflakeは、 ANSI SQL:1999および SQL:2003分析拡張機能のサブセットを含む、標準の SQL をサポートしています。Snowflakeは、多くのコマンドの一般的なバリエーションもサポートしていますが、それらのバリエーションは互いに競合しません。

ちなみに

検索最適化サービスを利用して、クエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。

JOIN(結合)の操作

JOIN(結合)は、2つのテーブルの行を結合して、クエリで使用できる新しい結合行を作成します。

結合の概念、結合の種類、および結合の操作方法について学びます。

冗長な結合を排除する

キー列での結合が、結合に不要なテーブルを参照することがあります。このような結合は、 冗長な結合 と呼ばれます。

冗長な結合と、それらを排除してクエリのパフォーマンスを向上させる方法について学びます。

サブクエリの操作

サブクエリは、別のクエリ内のクエリです。

サブクエリとその使用方法について学びます。

階層データのクエリ

リレーショナルデータベースは、多くの場合、異なるテーブルを使用して階層データを格納します。

結合、共通テーブル式(CTEs)および CONNECT BY を使用した階層データのクエリについて学びます。

CTEs(共通テーブル式)の使用

CTE (共通テーブル式)は、 WITH 句で定義された名前付きサブクエリで、結果は事実上テーブルになります。

CTE 式の記述方法と操作方法を学びます。

半構造化データのクエリ

半構造化データは任意の階層データ構造を表します。これを使用して、半構造化形式(例: JSON、Avro、 ORC、Parquet、または XML)のデータでロードしたり操作したりできます。

特別な演算子と関数を使用して、 VARIANT に格納されている複雑な階層データをクエリする方法を学びます。

ウィンドウ関数の使用

ウィンドウ関数は、なんらかの方法で関連する行のグループであるウィンドウで動作します。

ウィンドウ、ウィンドウ関数、およびウィンドウ関数を使用してデータを調べる方法について学びます。

パターンに一致する行のシーケンスを識別する

場合によっては、パターンに一致するテーブル行のシーケンスを識別する必要があります。

パターンマッチングと、 MATCH_RECOGNIZE を使用してパターンに一致するテーブル行を処理する方法について学びます。

シーケンスの使用

シーケンスは、同時ステートメントを含むセッションおよびステートメント全体で一意の番号を生成するために使用されます。

シーケンスとは何か、およびその使用方法を学びます。

保存済みのクエリ結果の使用

クエリが実行されると、結果は一定期間保持されます。

クエリ結果を永続化する方法、永続化された結果を利用できる期間、永続化されたクエリ結果を使用してパフォーマンスを向上させる方法について学びます。

異なる値の数の計算

列内にある個別の要素の数を決定するには、さまざまな方法があります。

データ内の個別の要素を識別して報告する方法を学びます。

2つ以上のセットの類似性の推定

Snowflakeは、データセットの類似性を比較するメカニズムを提供します。

Snowflakeが類似性を判断する方法と、類似性について複数のデータセットを比較する方法を学びます。

頻繁な値の推定

Snowflakeは、データを調べてデータ内の値の頻度を判断できます。

頻度を決定する方法と、 APPROX_TOP_K ファミリの関数を使用してデータをクエリしてデータ頻度を決定する方法を学びます。

パーセンタイル値の推定

Snowflakeは、t-Digestアルゴリズムの改良バージョンを使用して値のパーセンテージを推定できます。

APPROX_PERCENTILE 関数ファミリを使用してパーセンテージを推定する方法を学びます

クエリプロファイルを使用したクエリの分析

クエリプロファイルは、クエリの実行の詳細を提供します。

パフォーマンスを理解して改善するために、クエリプロファイルを使用してクエリを調べる方法を学びます。

クエリハッシュの使用による、クエリ内のパターンと傾向の識別

クエリのパターンや傾向を特定するには、クエリテキストのハッシュを使用できます。このハッシュは、選択したAccount Usageビューの query_hash 列と query_parameterized_hash 列、および選択したInformation Schemaテーブル関数の出力に含まれます。

これらの列のクエリハッシュを使用して、繰り返されるクエリを識別し、クエリのパターンと傾向を検出する方法を学びます。

ステートメントのキャンセル

実行中のステートメントは、通常、クエリの開始に使用されたインターフェイスを使用してキャンセルされます。

システム関数を使用して、特定のクエリまたは現在実行中のすべてのクエリをキャンセルする方法を学びます。