View a markdown version of this page

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

Per SELECT nyataan 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

contoh

Per SELECT nyataan 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 ]
contoh

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 JOIN melakukan property_id bidang asset_id dan 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 data keseluruhan yang dipindai.

contoh dari sebuah query:
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 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

LIMIT { count }

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

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

ORDER BY

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

Kla ORDER BY usa mengurutkan kumpulan hasil kueri.

catatan

Saat merujuk ke kolom yang dipilih dalam agregasi dalam ORDER BY klausa, gunakan indeks ordinal kolom daripada nama atau alias.

SELECT AVG(t.double_value) FROM latest_value_time_series t GROUP BY t.asset_id ORDER BY 1

GROUP BY

GROUP BY expression [, ...]

Kla GROUP BY usa mengidentifikasi kolom pengelompokan untuk kueri. Ini digunakan bersama dengan ekspresi agregat.

HAVING

HAVING boolean-expression

Kla HAVING usa memfilter baris grup yang dibuat oleh klausa GROUP BY.

SUB SELECT

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

Per SELECT nyataan yang tertanam 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;

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