Sdílet prostřednictvím


UNIE

✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅

Kombinuje výsledky dvou nebo více dotazů do jedné sady výsledků, která zahrnuje všechny řádky, které patří do všech dotazů ve sjednocení. Operace UNION se liší od použití spojení, která kombinují sloupce ze dvou tabulek.

Následují základní pravidla pro kombinování sad výsledků dvou dotazů pomocí funkce UNION:

  • Streamy musí mít stejný klíč oddílu a počet oddílů (další informace o oddílech najdete tady).
  • Číslo a pořadí sloupců musí být ve všech dotazech stejné.
  • Datové typy musí být kompatibilní.

Důležité

Pokud mají vstupy jiný počet oddílů, škálování není možné, protože škálování úlohy Stream Analytics využívá výhod oddílů ve vstupu a výstupu.

Syntaxe

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

Argumenty

< > query_specification | ( <query_expression> )

Je specifikace dotazu nebo výraz dotazu, který vrací data, která se mají kombinovat s daty z jiné specifikace dotazu nebo výrazu dotazu. Definice sloupců, které jsou součástí operace UNION, musí být stejné nebo musí být pojmenované stejně pomocí aliasu a musí být kompatibilní.

UNIE

Určuje, že se má zkombinovat několik sad výsledků a vrátit jako jednu sadu výsledků. FUNKCE UNION zahrnuje do výsledků všechny řádky. To zahrnuje duplicity.

Příklad

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

V případě potřeby je možné datové proudy předělovat tak, aby odpovídaly (buď ve stejné úloze jako níže, nebo jiné, aby se dosáhlo lepšího výkonu):

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