

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Klausul yang didukung
<a name="supported-clauses"></a>

`SELECT`Pernyataan ini digunakan untuk mengambil data dari satu atau lebih tampilan. AWS IoT SiteWise mendukung `JOIN` dan `INNER JOIN` operasi.

Tampilan digabungkan dengan `JOIN` sintaks eksplisit, atau dengan notasi yang dipisahkan koma dalam klausa. `FROM`

**Example**  
`SELECT`Pernyataan umum:  

```
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**  
Pernyataan SELECT dengan klausa yang berbeda:  

```
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;
```

**catatan**  
 Sebuah implisit `JOIN` menggabungkan dua atau lebih tabel yang berbeda tanpa menggunakan `JOIN` kata kunci berdasarkan AWS IoT SiteWise skema internal. Ini setara dengan melakukan `JOIN` on the `asset_id` and `property_id` field antara metadata dan tabel data mentah. Pola ini memungkinkan SiteWise untuk memanfaatkan filter metadata yang diberikan dalam kueri, saat mengambil dari tabel data mentah dengan cara yang menghasilkan lebih sedikit keseluruhan data yang dipindai.   

**Example dari sebuah kueri:**  

```
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'
```
Contoh di atas hanya memindai data dari properti aset milik nama metadata yang ditentukan.  

**Example dari ekuivalen yang kurang dioptimalkan dari kueri di atas:**  

```
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'
```

Penjelasan dari setiap klausa dan deskripsinya tercantum di bawah ini:


|  **Klausul**  |  **Tanda tangan**  |  **Deskripsi**  | 
| --- | --- | --- | 
|  `LIMIT`  |  <pre>LIMIT { count }</pre>  |  Klausa ini membatasi hasil yang disetel ke jumlah baris yang ditentukan. Anda dapat menggunakan `LIMIT` dengan atau tanpa `ORDER BY` dan `OFFSET` klausa. `LIMIT`hanya bekerja dengan bilangan bulat non-negatif dari [0,2147483647].  | 
|  `ORDER BY`  |  <pre>ORDER BY expression<br />[ ASC | DESC ]<br />[ NULLS FIRST | NULLS LAST ] <br /></pre>  |  `ORDER BY`Klausa mengurutkan kumpulan hasil kueri.   Saat merujuk ke kolom yang dipilih dalam agregasi dalam `ORDER BY` klausa, gunakan indeks ordinal kolom daripada nama atau alias.  <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`Klausa mengidentifikasi kolom pengelompokan untuk kueri. Ini digunakan bersama dengan ekspresi agregat.  | 
|  `HAVING`  |  <pre>HAVING boolean-expression</pre>  |  `HAVING`Klausa memfilter baris grup yang dibuat oleh klausa GROUP BY.  | 
|  `SUB SELECT`  |  <pre>SELECT column1, column2<br />FROM table1<br />WHERE column3 IN (SELECT column4 FROM table2);<br /></pre>  |  `SELECT`Pernyataan yang disematkan dalam `SELECT` pernyataan lain.  | 
|  `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>  |  Sebuah `INNER JOIN` mengembalikan semua baris dari kedua tabel, yang cocok dengan kondisi gabungan.  | 
|  `UNION`  |  <pre>query<br />   { UNION [ ALL ] }<br />another_query<br /></pre>  |  `UNION`Operator menghitung gabungan set dari dua argumennya, secara otomatis menghapus catatan duplikat dari kumpulan hasil.  | 