SELECT
説明
1つ以上のテーブル、ビュー、またはマテリアライズドビューからデータをクエリします。SELECT文は一般的に以下の句で構成されます。
- WITH
- WHEREと演算子
- GROUP BY
- HAVING
- UNION
- INTERSECT
- EXCEPT/MINUS
- ORDER BY
- LIMIT
- OFFSET
- Joins
- サブクエリ
- DISTINCT
- エイリアス
SELECTは独立した文としても、他の文にネストされた句としても機能します。SELECT句の出力は他の文の入力として使用できます。
StarRocksのクエリ文は基本的にSQL92標準に準拠しています。ここではサポートされているSELECTの使用法について簡単に説明します。
NOTE
StarRocks内部テーブルのテーブル、ビュー、またはマテリアライズドビューからデータをクエリするには、これらのオブジェクトに対するSELECT権限が必要です。外部データソースのテーブル、ビュー、またはマテリアライズドビューからデータをクエリするには、対応するexternal catalogに対するUSAGE権限が必要です。
WITH
SELECT文の前に追加できる句で、SELECT内で複数回参照される複雑な式にエイリアスを定義します。
CRATE VIEWに似ていますが、句で定義されたテーブル名とカラム名はクエリ終了後に保持されず、実際のテーブルやVIEWの名前と競合しません。
WITH句を使用する利点は以下の通りです。
クエリ内の重複を減らし、便利でメンテナンスが容易です。
クエリの最も複雑な部分を別々のブロックに抽象化することで、SQLコードを読みやすく理解しやすくします。
例:
-- 外部レベルで1つのサブクエリを定義し、UNION ALLクエリの初期段階の一部として
-- 内部レベルで別のサブクエリを定義します。
with t1 as (select 1),t2 as (select 2)
select * from t1 union all select * from t2;
Join
ジョイン操作は、2つ以上のテーブルからデータを結合し、その中のいくつかのカラムの結果セットを返します。
StarRocksは、自己ジョイン、クロスジョイン、内部ジョイン、外部ジョイン、セミジョイン、アンチジョインをサポートしています。外部ジョインには、左ジョイン、右ジョイン、フルジョインが含まれます。
構 文:
SELECT select_list FROM
table_or_subquery1 [INNER] JOIN table_or_subquery2 |
table_or_subquery1 {LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER]} JOIN table_or_subquery2 |
table_or_subquery1 {LEFT | RIGHT} SEMI JOIN table_or_subquery2 |
table_or_subquery1 {LEFT | RIGHT} ANTI JOIN table_or_subquery2 |
[ ON col1 = col2 [AND col3 = col4 ...] |
USING (col1 [, col2 ...]) ]
[other_join_clause ...]
[ WHERE where_clauses ]
SELECT select_list FROM
table_or_subquery1, table_or_subquery2 [, table_or_subquery3 ...]
[other_join_clause ...]
WHERE
col1 = col2 [AND col3 = col4 ...]
SELECT select_list FROM
table_or_subquery1 CROSS JOIN table_or_subquery2
[other_join_clause ...]
[ WHERE where_clauses ]