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
)