SET Operation
Contents
SET Operation#
SET 操作将两个或者更多相同输出 schema 的 query 语句按特定的规则整合成一个结果输出. 共有三种 Set 操作符: UNION, INTERSECT, EXCEPT, OpenMLDB 目前仅支持 UNION.
Syntax#
set_operation:
query set_operator query
set_operator:
UNION { ALL | DISTINCT }
注意
ALL/DISTINCT是必填, 不支持单独 UNION 的写法同一层 Set Operation 里, 多个 UNION 操作必须都是 UNION ALL 或者 UNION DISTINCT. 可以利用子查询将不同 DISTINCT 属性的 query 串联起来
这里的 UNION 语法不同于 WINDOW clause 中的 WINDOW UNION 语法
边界说明#
SELECT语句元素 |
离线模式 |
在线预览模式 |
在线请求模式 |
说明 |
|---|---|---|---|---|
SET Operation |
|
|
|
在线模式下只支持 UNION ALL, 离线模式支持 UNION ALL 和 UNION DISTINCT
Example#
SELECT * FROM t1
UNION ALL
SELECT * FROM t2
UNION ALL
SELECT * FROM t3
-- differnt DISTINCT field
SELECT * FROM t1
UNION ALL
(
SELECT * FROM t2
UNION DISTINCT
SELECT * FROM t3
)