You need to enable JavaScript to run this app.
日志服务

日志服务

复制全文
SQL 语法
UNION 子句
复制全文
UNION 子句

UNION 子句用于合并多个 SELECT 子句的分析结果。本文介绍 UNION 子句的语法格式和示例。

Demo 中心

日志服务 Demo 中心提供了 SQL 语法 Demo,方便您快速体验功能。单击 SQL语法案例 立即体验。

注意

Demo 中心的数据为演示数据,请勿用于生产环境。

语法说明

UNION 子句的语法格式如下:

SELECT Key1 FROM Table1
UNION [ALL]
SELECT Key2 FROM Table2

说明

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

参数说明如下:

参数

说明

ALL

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

Key

日志字段、表达式。其中:

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

Table

日志主题,格式为Project.Topic,即必须指定日志主题所属的日志项目。
当名称中包含-/$*&%#@等特殊字符时,需使用双引号 "" 包裹,例如 "test-log.open_api"

示例

示例 1:合并时去重

  • 场景
    统计两个服务的状态值。查询日志项目 test-log 下日志主题 open_api web_api 中的 status 字段,并且合并为一列返回。如果存在重复的 status 字段值,只返回其中一个。

  • 检索分析语句

    * | 
    SELECT status FROM "test-log.open_api" GROUP BY status
    UNION 
    SELECT status FROM "test-log.web_api" GROUP BY status
    
  • 检索分析结果
    Image

示例 2:合并时不去重

  • 场景
    统计两种日志的级别。查询日志项目 test-log 下日志主题 open_api web_api 中的 level 字段,并且合并为一列返回,返回结果中包含重复值。

  • SQL 语句:

    * | 
    SELECT level FROM "test-log.open_api" GROUP BY level
    UNION ALL
    SELECT level FROM "test-log.web_api" GROUP BY level
    
  • 返回结果:
    Image

示例 3:搭配 LIMIT 语法

  • 场景
    查询日志项目 test-log 下日志主题 open_api web_api 中的 ReqSize 字段,并且将该字段的前三个值合并为一列返回。

  • SQL 语句:

    * | SELECT * FROM
    (SELECT ReqSize FROM "test-log.open_api" LIMIT 3)
    UNION
    (SELECT ReqSize FROM "test-log.web_api" LIMIT 3)
    
  • 返回结果:
    Image

最近更新时间:2025.08.19 10:54:29
这个页面对您有帮助吗?
有用
有用
无用
无用