Cláusulas admitidas - AWS IoT SiteWise

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cláusulas admitidas

La SELECT sentencia se utiliza para recuperar datos de una o más vistas. AWS IoT SiteWise admite las INNER JOIN operaciones JOIN y.

Las vistas se unen con una JOIN sintaxis explícita o con anotaciones separadas por comas en la cláusula. FROM

Una declaración general: 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 ]

Una declaración SELECT con las diferentes cláusulas:

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

Una implícita JOIN combina dos o más tablas diferentes sin usar la JOIN palabra clave según AWS IoT SiteWise su esquema interno. Esto equivale a realizar una JOIN en los property_id campos asset_id y entre las tablas de metadatos y de datos sin procesar. Este patrón SiteWise permite aprovechar cualquier filtro de metadatos de la consulta cuando se extraen datos de tablas de datos sin procesar de forma que se escaneen menos datos generales.

ejemplo de una consulta:
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'

El ejemplo anterior solo escanea los datos de la propiedad del activo que pertenece a los nombres de metadatos especificados.

ejemplo de un equivalente menos optimizado de la consulta anterior:
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'

A continuación se detalla una explicación de cada cláusula y su descripción:

Cláusu

Signature

Descripción

LIMIT

LIMIT { count }

Esta cláusula limita el conjunto de resultados al número de filas especificado. Puede utilizarla LIMIT con o sin OFFSET cláusulas ORDER BY y.

LIMITsolo funciona con números enteros no negativos de [0,2147483647].

ORDER BY

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

La ORDER BY cláusula ordena el conjunto de resultados de una consulta.

GROUP BY

GROUP BY expression [, ...]

La GROUP BY cláusula identifica las columnas de agrupación de la consulta. Se usa junto con una expresión agregada.

HAVING

HAVING boolean-expression

La HAVING cláusula filtra las filas del grupo creadas por la cláusula GROUP BY.

SUB SELECT

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

Una SELECT declaración incrustada dentro de otra SELECT declaración.

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 devuelve todas las filas de ambas tablas que coincidan con la condición de unión.

UNION

query { UNION [ ALL ] } another_query

El UNION operador calcula la unión de conjuntos de sus dos argumentos y elimina automáticamente los registros duplicados del conjunto de resultados.