組合

✅ Azure Stream Analytics ✅ Fabric Eventstream

2 つ以上のクエリの結果を、共用体内のすべてのクエリに属するすべての行を含む 1 つの結果セットに結合します。 UNION 操作は、2 つのテーブルの列を結合する結合の使用とは異なります。

UNION を使用して 2 つのクエリの結果セットを結合するための基本的な規則を次に示します。

  • ストリームには、同じパーティション キーとパーティション数が必要です (パーティションの詳細については 、こちらをご覧ください)。
  • 列の数と順序は、すべてのクエリで同じである必要があります。
  • データ型は互換性がある必要があります。

Von Bedeutung

入力に異なる数のパーティションがある場合、Stream Analytics ジョブのスケーリングでは入力と出力のパーティションが利用されるため、 スケーリング はできません。

構文

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

論争

<query_specification> |( <query_expression> )

別のクエリ仕様またはクエリ式のデータと組み合わせるデータを返すクエリ仕様またはクエリ式です。 UNION 操作の一部である列の定義は、同じであるか、別名を使用して同じ名前を付ける必要があり、互換性がある必要があります。

組合

複数の結果セットを結合し、1 つの結果セットとして返すように指定します。 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