Unterstützte Klauseln - AWS IoT SiteWise

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Unterstützte Klauseln

Die SELECT Anweisung wird verwendet, um Daten aus einer oder mehreren Ansichten abzurufen. AWS IoT SiteWise unterstützt die INNER JOIN Operationen JOIN und.

Ansichten werden mit einer expliziten JOIN Syntax oder mit durch Kommas getrennten Notationen in der Klausel verknüpft. FROM

Eine allgemeine Aussage: 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 ]

Eine SELECT-Anweisung mit den verschiedenen Klauseln:

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

Eine implizite Methode JOIN kombiniert zwei oder mehr verschiedene Tabellen, ohne das auf AWS IoT SiteWise dem internen Schema basierende JOIN Schlüsselwort zu verwenden. Dies entspricht der Ausführung von A JOIN für die property_id Felder asset_id und zwischen Metadaten- und Rohdatentabellen. Dieses Muster SiteWise ermöglicht es, beliebige Metadatenfilter in der Abfrage beim Abrufen aus Rohdatentabellen so zu nutzen, dass insgesamt weniger Daten gescannt werden.

Beispiel einer Abfrage:
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'

Im obigen Beispiel werden nur Daten aus der Asset-Eigenschaft gescannt, die zu den angegebenen Metadatennamen gehören.

Beispiel eines weniger optimierten Äquivalents der obigen Abfrage:
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'

Eine Erläuterung der einzelnen Klauseln und ihrer Beschreibung ist unten aufgeführt:

Klausel

Signature

Beschreibung

LIMIT

LIMIT { count }

Diese Klausel begrenzt die Ergebnismenge auf die angegebene Anzahl von Zeilen. Sie können LIMIT mit oder ohne ORDER BY OFFSET UND-Klauseln verwenden.

LIMITfunktioniert nur mit nicht negativen Ganzzahlen ab [0,2147483647].

ORDER BY

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

Die ORDER BY Klausel sortiert die Ergebnismenge einer Abfrage.

GROUP BY

GROUP BY expression [, ...]

Die GROUP BY Klausel identifiziert die Gruppierungsspalten für die Abfrage. Sie wird in Verbindung mit einem Aggregatausdruck verwendet.

HAVING

HAVING boolean-expression

Die HAVING Klausel filtert Gruppenzeilen, die durch die GROUP BY-Klausel erstellt wurden.

SUB SELECT

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

Eine SELECT Anweisung, die in eine andere SELECT Anweisung eingebettet ist.

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 gibt alle Zeilen aus beiden Tabellen zurück, die der Join-Bedingung entsprechen.

UNION

query { UNION [ ALL ] } another_query

Der UNION Operator berechnet die Mengenvereinigung seiner beiden Argumente und entfernt automatisch doppelte Datensätze aus der Ergebnismenge.