ORDER BY子句用于根据指定的列名对查询和分析结果进行排序。
语法
ORDER BY 列名 [DESC | ASC]
说明
您可以指定多个列名,按照不同的排序方式排序。例如
ORDER BY 列名1 [DESC | ASC], 列名2 [DESC | ASC]
。如果您未配置关键字DESC或ASC,则系统默认对查询和分析结果进行升序排列。
当排序的目标列中存在相同的值时,每次排序结果可能不同。如果您希望每次序列结果相同,可指定多个列进行排序。
参数说明
参数 | 说明 |
列名 | 列名即为日志字段名称或聚合函数计算结果列,即支持按照日志字段名称(KEY)或聚合函数计算结果列进行排序。 |
DESC | 降序排列。 |
ASC | 升序排列。 |
示例
示例1:统计不同请求状态码对应的请求次数,并按照请求次数降序排列。
查询和分析语句
* | SELECT count(*) AS PV, status GROUP BY status ORDER BY PV DESC
查询和分析结果
示例2:计算各个Logstore的平均延迟时间,并按照平均延迟时间进行降序排列。
查询和分析语句
* | SELECT avg(latency) AS avg_latency, LogStore GROUP BY LogStore ORDER BY avg_latency DESC
查询和分析结果
示例3:计算不同请求时长对应的请求数量,并按照请求时长进行升序排序。
其中,content、time和request_time为JSON日志中的字段。
重要在查询和分析JSON类型的日志时,需注意以下事项。更多信息,请参见查询和分析JSON日志。
必须给字段名称加上JSON中父路径前缀,例如content.time.request_time。
分析语句中的JSON字段名称必须使用双引号("")包裹,例如"content.time.request_time"。
查询和分析语句
* | SELECT "content.time.request_time", count(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time"
查询和分析结果