Klausul yang didukung - AWS IoT SiteWise

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

Klausul yang didukung

SELECTPernyataan 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

SELECTPernyataan 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 ]

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.

contoh 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.

contoh setara dengan kueri di atas yang kurang dioptimalkan:
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

LIMIT { count }

Klausa ini membatasi hasil yang disetel ke jumlah baris yang ditentukan. Anda dapat menggunakan LIMIT dengan atau tanpa ORDER BY dan OFFSET klausa.

LIMIThanya bekerja dengan bilangan bulat non-negatif dari [0,2147483647].

ORDER BY

ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]

ORDER BYKlausa mengurutkan kumpulan hasil kueri.

GROUP BY

GROUP BY expression [, ...]

GROUP BYKlausa mengidentifikasi kolom pengelompokan untuk kueri. Ini digunakan bersama dengan ekspresi agregat.

HAVING

HAVING boolean-expression

HAVINGKlausa memfilter baris grup yang dibuat oleh klausa GROUP BY.

SUB SELECT

SELECT column1, column2 FROM table1 WHERE column3 IN (SELECT column4 FROM table2);

SELECTPernyataan yang disematkan dalam SELECT pernyataan lain.

JOIN

SELECT column1, column2 FROM table1 JOIN table2 ON table1.column1 = table2.column1;

INNER JOIN

SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;

Sebuah INNER JOIN mengembalikan semua baris dari kedua tabel, yang cocok dengan kondisi gabungan.

UNION

query { UNION [ ALL ] } another_query

UNIONOperator menghitung gabungan set dari dua argumennya, secara otomatis menghapus catatan duplikat dari kumpulan hasil.