本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支援的子句
SELECT
陳述式用於從一或多個檢視擷取資料。 AWS IoT SiteWise 支援 JOIN
和 INNER JOIN
操作。
檢視會以明確的語法聯結,或在 JOIN
FROM
子句中以逗號分隔的符號聯結。
一般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 ]
具有不同子句的 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
會結合兩個或多個不同的資料表,而不根據 AWS IoT SiteWise內部結構描述使用JOIN
關鍵字。這相當於JOIN
在中繼資料asset_id
和原始資料表之間的 和 property_id
欄位上執行 。此模式可讓 SiteWise 在從原始資料表擷取資料時,利用查詢中任何指定的中繼資料篩選條件,進而減少掃描的整體資料。
範例 查詢的 :
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'
上述範例只會從屬於指定中繼資料名稱的資產屬性掃描資料。
範例 的最佳化程度低於上述查詢:
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'
每個子句及其描述的說明如下所示:
子句 |
Signature |
Description |
---|---|---|
|
|
此子句會將結果集限制為指定的資料列數。您可以使用
|
|
|
|
|
|
|
|
|
|
|
|
內嵌在另一個 |
|
|
|
|
|
會 |
|
|
|