サブクエリは、SELECTステートメントが別のSELECTステートメント内にネストされているクエリです。 サブクエリを使用して、複雑な分析要件を満たすことができます。
構文
SELECT文でFROM句を指定します。
* | SELECT key FROM (sub_query)
重要
サブクエリ文をFROM句で括弧内
()
で囲む必要があります。現在のLogstoreのログデータを分析する場合は、キーワード
FROM log
を指定する必要があります。
例
例 1
要求メソッドによるページビュー (PV) の数を計算し、PVの最小数を取得します。
クエリ文
* | SELECT min(PV) FROM ( SELECT count(1) as PV FROM log GROUP BY request_method )
クエリおよび分析の結果
例 2
前日の同じ期間のPVに対する現在の時間のPVの比率を計算します。 クエリの時間範囲は1時間 (on The hour) です。 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は、現在の時間のPVを示します。 例: 2020年12月25日の14:00:00から15:00:00までのPV。
3522.0は、前日の同じ期間のPVを示します。 例: 2020年12月24日の14:00:00から15:00:00までのPV。
0.947473026689381は、前日の同じ期間のPVに対する現在の時間のPVの比率を示します。
例 3
各ページのPVの数と、全PVに対する各ページのPVの割合を計算します。
クエリ文
* | SELECT request_uri AS "Access page", c as "PVs", 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 )
クエリおよび分析の結果