本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
支持的子句
该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'
下面列出了每个条款的解释及其描述:
条款 |
签名 |
描述 |
---|---|---|
|
|
此子句将结果集限制为指定的行数。您可以使用
|
|
|
该 |
|
|
该 |
|
|
该 |
|
|
嵌入在另一条 |
|
|
|
|
|
|
|
|
|