跳转到内容
搜索文档

支持的 SQL 查询 (SQL queries supported)

最后更新 查看 MarkdownAgent 设置

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

下图说明了 Log Explorer 中支持的有效查询的一般形式。它展示了如何组合标准的 SQL 子句 —— 例如 SELECTWHEREGROUP BYORDER 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)

    返回 ClientCountryUSCA 的行。

  • 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)

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

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

这篇文档对您有帮助吗?