すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ネストされたサブクエリ

最終更新日:Aug 27, 2026

ネストされたサブクエリは、ある SELECT 文を別の SELECT 文の内部に埋め込むことで、集約結果に対する集約などの複数ステップの分析を可能にします。

構文

外側の SELECT の FROM 句を使用して、サブクエリを囲みます。

* | SELECT key FROM (sub_query)
重要
  • サブクエリは括弧 () で囲みます。

  • 現在の Logstore を照会するには、サブクエリに FROM log 句を含めます。

例

例 1

リクエストメソッドごとにリクエスト数をカウントし、その最小値を求めます。

  • クエリ文

    * |
    SELECT
     min(PV)
    FROM  (
        SELECT
          count(1) as PV
        FROM      log
        GROUP BY
          request_method
      )
  • クエリと分析の結果

    結果は 13 です。これは、リクエストメソッドでグループ化した後の最小 PV です。

例 2

現在の時間帯のページビュー (PV) を前日の同じ時間帯の PV と比較します。クエリの時間範囲は [1 時間 (正時)] です。 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]:現在の時間帯 (例:2020 年 12 月 25 日 14:00~15:00) の PV です。

    • [3522.0]:前日の同じ時間帯 (例:2020 年 12 月 24 日 14:00~15:00) の PV です。

    • [0.947473026689381]:現在の時間帯の PV の、前日の PV に対する比率です。

例 3

ページごとの PV をカウントし、各ページの PV が全体に占める割合を計算します。

  • クエリ文

    * |
    SELECT
      request_uri AS "Accessed Page",
      c AS "Count",
      round(c * 100.0 /(sum(c) over()), 2) AS "Percentage (%)"
    FROM  (
        SELECT
          request_uri AS request_uri,
          count(*) AS c
        FROM      log
        GROUP BY
          request_uri
        ORDER BY
          c DESC
      )