ネストされたサブクエリは、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 ) -
クエリと分析の結果

例 2
現在の 1 時間のページビュー (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]:現在の 1 時間の PV (例:2020年12月25日 14:00~15:00)。
-
[3522.0]:昨日の同じ時間の PV (例:2020年12月24日 14:00~15:00)。
-
[0.947473026689381]:現在の 1 時間の PV と、昨日の同じ時間の PV との比率。
-
例 3
ページごとに PV をカウントし、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 ) -
クエリと分析の結果
