全部產品
Search
文件中心

Simple Log Service:嵌套子查詢

更新時間:Jun 30, 2024

嵌套子查詢是指將一個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
      )
  • 查詢和分析結果嵌套子查詢