私は最近、オラクル クエリのヘルプを得ましたが、それがどのように機能するかをよく理解していないため、自分のデータで機能させることができません。論理的なステップで何が起こっているのか、既存のテーブルの列から実際にどの変数が取得されるのか、その論理を説明できる人はいますか? 読み取り値の表 (列名は日、時間、ボリューム) からデータを選択し、すべての読み取り値に戻ることで、各日の各時間 (つまり、GROUP BY 日、時間) のボリュームの平均読み取り値を見つけようとしています。過去のその時間/日の組み合わせについて(私のデータセットまでさかのぼって)、その平均を書き出します。それが完了すると、同じ列名 (日、時間、ボリューム) を持つ別のテーブルに結果が書き込まれます。1 時間ごとに書き戻す場合を除き、「ボリューム」は過去の 1 日のその時間の平均になります。たとえば、過去のすべての水曜日の午後 7 時の平均を調べて、その平均を新しいレコードに出力したいとします。これらの 3 つの列が使用され、以下のコードを参照すると仮定すると、「時間」が「時間」とどのように異なるのか、および t1 変数が何を表しているのかわかりません。どんな助けでも大歓迎です。
INSERT INTO avg_table (days, hours, avrg)
WITH xweek
AS (SELECT ds, LPAD (hrs, 2, '0') hrs
FROM ( SELECT LEVEL ds
FROM DUAL
CONNECT BY LEVEL <= 7),
( SELECT LEVEL - 1 hrs
FROM DUAL
CONNECT BY LEVEL <= 24))
SELECT t1.ds, t1.hrs, AVG (volume)
FROM xweek t1, tables t2
WHERE t1.ds = TO_CHAR (t2.day(+), 'D')
AND t1.hrs = t2.hour(+)
GROUP BY t1.ds, t1.hrs;