✅ 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