You need to enable JavaScript to run this app.
导航

UNION 子句

最近更新时间2024.01.22 17:20:01

首次发布时间2024.01.22 17:20:01

UNION 子句用于合并多个 SELECT 子句的分析结果。

语法说明

UNION 子句的语法格式如下:

SELECT Key1 FROM Topic1 
UNION [ALL]
SELECT Key1 FROM Topic2

说明

  • UNION 子句支持跨日志主题合并,即通过 UNION 子句合并多个 SELECT 子句时,各个 SELECT 子句可以源于不同的日志主题或日志项目。
  • UNION 子句中每个 SELECT 子句的分析结果字段数量和类型应相同。

参数说明如下:

参数

说明

ALL

SELECT 的结果中如果存在重复的行,UNION 子句默认去重,即仅保留其中一行。如果需要保留所有的重复行,可以使用 UNION ALL

Key

列名和字段名称。其中:

  • SELECT 子句的字段数量应相同。
  • key1 和 key2 的数据类型必须相同,字段名称可以不同。

Topic

日志主题名称。必填。跨日志项目合并时,应指定对应的日志项目名称,例如 Project1.Topic1

示例

示例 1:合并时去重

统计两个服务的状态值。查询日志主题 open_api 和 web_api 中的 status 字段,并合并为一列返回。如果存在重复的 status 字段,则只返回其中一个。

  • SQL 语句:

    * | 
    SELECT status FROM open_api GROUP BY status 
    UNION 
    SELECT status FROM web_api GROUP BY status
    
  • 返回结果:

    status

    200

    400

    403

    500

示例 2:合并时不去重

统计两个小组的人员名单。查询日志主题 groupA 和 groupB 中的 staffname 字段,并合并为一列返回。返回全部的 staffname,即使存在重复的值。

  • SQL 语句:

    * | 
    SELECT staffname FROM groupA GROUP BY staffname 
    UNION ALL
    SELECT staffname FROM groupB GROUP BY staffname
    
  • 返回结果:

    staffname

    张三

    李四

    张三

    小明