Share via


UNION (Azure Stream Analytics)

將兩個或多個查詢的結果結合成單一結果集,其中包含屬於聯集中所有查詢的所有資料列。 UNION 作業不同於利用聯結來結合兩份資料表的資料行。

以下是利用 UNION 來組合兩項查詢的結果集之基本規則:

  • 串流必須具有相同的資料分割索引鍵和資料分割計數, (在這裡 深入瞭解分割區)
  • 在所有查詢中,資料行的數目和順序必須相同。
  • 資料類型必須相容。

重要

如果輸入的資料分割數目 不同,則 無法調整串流分析作業利用輸入和輸出中的資料分割。

語法

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

引數

<query_specification > | ( < query_expression ) >

是一個查詢規格或查詢運算式,可傳回資料以便與另一個查詢規格或查詢運算式中的資料結合。 屬於 UNION 作業一部分的資料行的定義必須相同,或必須使用別名命名為同名而且必須相容。

UNION

指定組合多個結果集,以及當做單一結果集傳回。 UNION 會將所有資料列併入結果中。 這包括重複項目。

範例

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

如有需要,可以 重新分割 串流,以在與下列相同的作業中比對 (,或另一個資料流程以達到更好的效能) :

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