跳转到内容
搜索文档

支持的 SQL 查询 (SQL queries supported)

最后更新 查看 MarkdownAgent 设置

本页面概述了 Log Explorer 支持的 SQL 功能,包括常见的聚合函数、表达式和查询子句。

下图说明了 Log Explorer 中支持的有效查询的一般形式。它展示了如何组合标准的 SQL 子句 —— 例如 SELECT、WHERE、GROUP BY 和 ORDER BY —— 来构成支持的查询。

支持的 SQL 语法

查询示例如下:

  • SELECT * FROM table WHERE (a = 1 OR b = "hello") AND c < 25.89
  • SELECT a, b, c FROM table WHERE d >= "GB" LIMIT 10

SQL 子句详细说明

以下 SQL 子句定义了 Log Explorer 中查询的结构和逻辑:

  • SELECT - SELECT 子句指定您希望从数据库表中检索的列。它可以包括单独的列名、表达式,甚至是通配符来选择所有列。
  • FROM - FROM 子句指定要从中检索数据的表。它指示了 SELECT 语句的数据源。
  • WHERE - WHERE 子句根据指定的条件过滤查询返回的行。它允许您指定行必须满足的条件,才能包含在结果集中。
  • SELECT DISTINCT - 从结果集中移除重复行。
  • GROUP BY - 对行进行分组以进行聚合。GROUP BY 子句用于将具有相同值的行分组为汇总行。
  • ORDER BY - 对结果集进行排序。ORDER BY 子句用于按一个或多个列以升序或降序对结果集进行排序。
  • LIMIT - 限制返回的行数。LIMIT 子句用于限制查询返回的行数。它经常与 ORDER BY 子句结合使用,以检索前 N 行或实现分页。
  • OFFSET - 在返回结果之前跳过指定数量的行。

以下各节将更详细地细分图中所示的其余组件 —— 例如聚合函数、字符串和数值表达式以及支持的运算符。

函数

Log Explorer 支持一系列 SQL 函数来转换、评估或汇总数据。这些包括标量函数和聚合函数。

标量函数 (Scalar functions)

这些有助于操作或评估值(通常是字符串):

  • ARRAY_CONTAINS(array, element) – 检查数组中是否包含该元素。

    示例

    ARRAY_CONTAINS(['US', 'CA'], ClientCountry)

    返回 ClientCountry 为 US 或 CA 的行。

  • SUBSTRING(string, from_number, for_number) – 提取字符串的一部分。

    示例

    SUBSTRING(ClientRequestPath, 0, 5)

    从 ClientRequestPath 中提取前 5 个字符。

  • LOWER(string) – 转换为小写。

    示例

    LOWER(ClientRequestUserAgent)

    将 user agent 字符串转换为小写。

  • UPPER(string) – 转换为大写。

    示例

    UPPER(ClientCountry)

    将国家/地区代码转换为大写。

聚合函数 (Aggregation functions)

用于对行集执行计算:

  • SUM(expression) – 值的总和。

    示例

    SUM(ClientRequestBytes)

    将客户端请求的总字节数相加。

  • MIN(expression) – 最小值。

    示例

    MIN(OriginResponseDurationMs)

    查找源站服务器的最短响应时间。

  • MAX(expression) – 最大值。

    示例

    MAX(OriginResponseDurationMs)

    查找最长的响应时间。

  • COUNT(expression) – 行数(可以是所有行或非空值)。

    示例

    COUNT(ClientRequestUserAgent)

    统计有多少行具有 user agent 值。

  • COUNT(DISTINCT expression) – 不同的非空值的数量。

    示例

    COUNT(DISTINCT ClientIP)

    统计有多少个唯一的客户端 IP 发起了请求。

  • AVG(expression) – 数值型值的平均值。

    示例

    AVG(OriginResponseDurationMs)

    计算以毫秒为单位的平均源站响应时间。

下图表示 SQL 表达式(包括标量和聚合函数)的语法。

标量和聚合函数

表达式

查询中使用的条件或逻辑:

  • CASE WHEN – 条件逻辑(类似于 if-else)。
  • AS – 列或表的别名。
  • LIKE – 模式匹配。
  • IN (list) – 检查值是否在列表中。
  • BETWEEN ... AND ... – 检查值是否在范围内。
  • Unary operator – 对一个操作数进行操作(例如 -5)。
  • Binary operator – 对两个操作数进行操作(例如 5 + 3)。
  • Nested Expressions – 用括号括起来的表达式,例如 ( x > y ) 或 ( 1 )。
  • Compound identifier – 多部分名称(例如 schema.table.column)。
  • Array – 值的集合(在不同的 SQL 方言中支持方式不同)。
  • Literals - 表示值,例如字符串、数字或数组。

下图表示 SQL 表达式的语法,详细说明了表达式可以采取的各种形式,包括列、字面量、函数、运算符和别名。

SQL 表达式

下图定义了一元运算符(Unary operators)的语法,它们对单个操作数进行操作(例如取反或逻辑 NOT):

一元运算符的语法

二元运算符 (Binary Operators)

用于算术、比较和逻辑操作:

  • 算术:+、-、*、/、%(取模)
  • 比较:>、<、>=、<=、=、!=(或 <>)
  • 逻辑:AND、OR、XOR
  • 按位:&、|、^、>>、<<
  • 字符串拼接:||

这篇文档对您有帮助吗?