嵌套子查詢是指將一個SELECT語句嵌套在另一個SELECT語句中。針對複雜的分析情境,您可以使用嵌套子查詢。
基本文法
使用嵌套子查詢時,需在SELECT語句中指定FROM子句。
* | SELECT key FROM (sub_query)
重要
子查詢語句需被包裹在半形圓括弧
()
中。在子查詢語句中,需指定關鍵字
FROM log
,表示在當前Logstore中執行SQL分析。
樣本
樣本1
計算各個要求方法對應的請求數量,然後擷取最小的請求數量。
查詢和分析語句
* | SELECT min(PV) FROM ( SELECT count(1) as PV FROM log GROUP BY request_method )
查詢和分析結果
樣本2
計算當前1小時和昨天同時段的網站訪問量比值。其中,選取查詢和分析的時間範圍為1小時(整點時間),86400表示目前時間減去86400秒(1天),log表示Logstore名稱。
查詢和分析語句
* | SELECT diff [1] AS today, diff [2] AS yesterday, diff [3] AS ratio FROM ( SELECT compare(PV, 86400) AS diff FROM ( SELECT count(*) AS PV FROM log ) )
查詢和分析結果
3337.0表示當前1小時(例如2020-12-25 14:00:00~2020-12-25 15:00:00)的網站訪問量。
3522.0表示昨天同時段(例如2020-12-24 14:00:00~2020-12-24 15:00:00)的網站訪問量。
0.947473026689381表示當前1小時與昨天同時段的網站訪問量比值。
樣本3
統計各個訪問頁面的訪問次數及佔比。
查詢和分析語句
* | SELECT request_uri AS "訪問頁面", c AS "次數", round(c * 100.0 /(sum(c) over()), 2) AS "百分比%" FROM ( SELECT request_uri AS request_uri, count(*) AS c FROM log GROUP BY request_uri ORDER BY c DESC )
查詢和分析結果