Freigeben über


VEREINIGUNG

✅ Azure Stream Analytics ✅ Fabric Eventstream

Kombiniert die Ergebnisse von zwei oder mehr Abfragen in einem einzigen Resultset, das alle Zeilen enthält, die zu allen Abfragen in der Union gehören. Der UNION-Vorgang unterscheidet sich von der Verwendung von Verknüpfungen, die Spalten aus zwei Tabellen kombinieren.

Im Folgenden sind grundlegende Regeln zum Kombinieren der Resultsets von zwei Abfragen mithilfe von UNION aufgeführt:

  • Streams müssen denselben Partitionsschlüssel und die gleiche Partitionsanzahl haben (weitere Informationen zu Partitionen finden Sie hier)
  • Die Nummer und die Reihenfolge der Spalten müssen in allen Abfragen identisch sein.
  • Die Datentypen müssen kompatibel sein.

Von Bedeutung

Wenn die Eingaben über eine andere Anzahl von Partitionen verfügen, ist die Skalierung nicht möglich, da die Skalierung eines Stream Analytics-Auftrags die Partitionen in der Eingabe und Ausgabe nutzt.

Syntax

  { <query_specification> | ( <query_expression> ) }   
  UNION  
  <query_specification | ( <query_expression> )   
 [ UNION <query_specification> | ( <query_expression> )   
    [ ...n ] ]  
  

Argumente

< > query_specification | ( <query_expression> )

Ist eine Abfragespezifikation oder ein Abfrageausdruck, der Daten zurückgibt, die mit den Daten aus einer anderen Abfragespezifikation oder einem anderen Abfrageausdruck kombiniert werden sollen. Die Definitionen der Spalten, die Teil eines UNION-Vorgangs sind, müssen identisch sein oder mit einem Alias identisch sein und kompatibel sein.

VEREINIGUNG

Gibt an, dass mehrere Resultsets kombiniert und als einzelnes Resultset zurückgegeben werden sollen. UNION enthält alle Zeilen in die Ergebnisse. Dazu gehören Duplikate.

Beispiel

SELECT TollId, EntryTime AS Time, LicensePlate   
FROM Input1 TIMESTAMP BY EntryTime   
UNION  
SELECT TollId, ExitTime AS Time, LicensePlate   
FROM Input2 TIMESTAMP BY ExitTime  
  

Falls erforderlich, können Datenströme so neu partitioniert werden, dass sie übereinstimmen (entweder im selben Auftrag wie unten oder in einem anderen, um eine bessere Leistung zu erzielen):

WITH Input1_P as (
SELECT * FROM Input1 PARTITION BY partitionId INTO 2
),

Input2_P as (
SELET * FROM Input2 PARTITION BY partitionId INTO 2
)

SELECT TollId, EntryTime AS Time, LicensePlate   
FROM Input1_P TIMESTAMP BY EntryTime
UNION  
SELECT TollId, ExitTime AS Time, LicensePlate   
FROM Input2_P TIMESTAMP BY ExitTime