联盟

✅ Azure 流分析 ✅ 构造事件流

将两个或多个查询的结果合并到一个结果集中,其中包括属于联合中的所有查询的所有行。 UNION作不同于使用联接来合并两个表中的列。

下面是使用 UNION 组合两个查询的结果集的基本规则:

  • 流必须具有相同的分区键和分区计数( 在此处了解有关分区的详细信息)
  • 所有查询中的列数和顺序必须相同。
  • 数据类型必须兼容。

重要

如果输入具有不同的分区 数,则 无法缩放流分析作业利用输入和输出中的分区。

语法

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

论据

< > query_specification |(<query_expression>)

查询规范或查询表达式,返回要与其他查询规范或查询表达式中的数据组合的数据。 属于 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