

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# サポートされている句
<a name="supported-clauses"></a>

`SELECT` ステートメントは、1 つ以上のビューからデータを取得するために使用されます。 は `JOIN`および `INNER JOIN`オペレーション AWS IoT SiteWise をサポートします。

ビューは、明示的な`JOIN`構文、または `FROM`句のカンマ区切り表記で結合されます。

**Example**  
一般的な`SELECT`ステートメント:  

```
SELECT expression [, ...]
  [ FROM table_name AS alias [, ...] ]
  [ WHERE condition ]
  [ GROUP BY expression [, ...] ]
  [ HAVING condition ]
  [ ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, ...] ]
  [ LIMIT expression ]
```

**Example**  
さまざまな句を含む SELECT ステートメント:  

```
SELECT
  a.asset_name,
  a.asset_id,
  p.property_type,
  p.property_data_type,
  p.string_attribute_value,
  p.property_name
FROM asset a, asset_property p
WHERE a.asset_description LIKE '%description%'
AND p.property_type IN ('attribute', 'metric')
OR p.property_id IN (
  SELECT property_id
  FROM raw_time_series
  WHERE event_timestamp BETWEEN TIMESTAMP '2025-01-01 00:00:00' AND TIMESTAMP '2025-01-02 00:00:00'
  GROUP BY asset_id, property_id
  HAVING COUNT(*) > 100
 )
GROUP BY p.property_type
HAVING COUNT(*) > 5
ORDER BY a.asset_name ASC
LIMIT 20;
```

**注記**  
 暗黙的な `JOIN`は、内部スキーマに基づく `JOIN`キーワードを使用せずに、2 AWS IoT SiteWiseつ以上の異なるテーブルを組み合わせます。これは、メタデータ`asset_id`テーブルと raw データテーブル間の フィールドと `property_id`フィールド`JOIN`で を実行するのと同じです。このパターンにより、SiteWise は、スキャンされた全体的なデータが少ない方法で raw データテーブルから取得するときに、クエリ内の特定のメタデータフィルターを活用できます。  

**Example クエリの :**  

```
SELECT a.asset_name, p.property_name, r.event_timestamp
FROM asset a, asset_property p, raw_time_series r
WHERE a.asset_name='my_asset' AND p.property_name='my_property'
```
上記の例では、指定されたメタデータ名に属するアセットプロパティのデータのみをスキャンします。  

**Example 上記のクエリと同等に最適化されていません。**  

```
SELECT a.asset_name, p.property_name, r.event_timestamp
FROM asset a
JOIN asset_property p ON a.asset_id=p.asset_id
JOIN raw_time_series r ON p.asset_id=r.asset_id AND p.property_id=r.property_id
WHERE a.asset_name='my_asset' AND p.property_name='my_property'
```

各句とその説明を以下に示します。


|  ****句  |  **署名**  |  **説明**  | 
| --- | --- | --- | 
|  `LIMIT`  |  <pre>LIMIT { count }</pre>  |  この句は、結果セットを指定された行数に制限します。および `ORDER BY``OFFSET``LIMIT`句の有無にかかわらず、 を使用できます。 `LIMIT` は、[0,2147483647] の負以外の整数でのみ機能します。  | 
|  `ORDER BY`  |  <pre>ORDER BY expression<br />[ ASC | DESC ]<br />[ NULLS FIRST | NULLS LAST ] <br /></pre>  |  `ORDER BY` 句は、クエリの結果セットをソートします。   `ORDER BY` 句の集計で選択した列を参照する場合は、名前やエイリアスではなく、列の序数インデックスを使用します。 <pre>SELECT AVG(t.double_value)<br />FROM latest_value_time_series t<br />GROUP BY t.asset_id<br />ORDER BY 1</pre>   | 
|  `GROUP BY`  |  <pre>GROUP BY expression [, ...]</pre>  |  `GROUP BY` 句は、クエリのグループ化列を識別します。これは集計式と組み合わせて使用されます。  | 
|  `HAVING`  |  <pre>HAVING boolean-expression</pre>  |  `HAVING` 句は、GROUP BY 句によって作成されたグループ行をフィルタリングします。  | 
|  `SUB SELECT`  |  <pre>SELECT column1, column2<br />FROM table1<br />WHERE column3 IN (SELECT column4 FROM table2);<br /></pre>  |  別の`SELECT`ステートメントに埋め込まれた`SELECT`ステートメント。  | 
|  `JOIN`  |  <pre>SELECT column1, column2<br />FROM table1 JOIN table2<br />ON table1.column1 = table2.column1;<br /></pre>  | 
|  `INNER JOIN`  |  <pre>SELECT columns<br />FROM table1<br />INNER JOIN table2 ON table1.column = table2.column;<br /></pre>  |  は、結合条件に一致する両方のテーブルのすべての行`INNER JOIN`を返します。  | 
|  `UNION`  |  <pre>query<br />   { UNION [ ALL ] }<br />another_query<br /></pre>  |  `UNION` 演算子は 2 つの引数の集合和を計算し、結果セットから重複するレコードを自動的に削除します。  | 