我最近得到了一些关于 oracle 查询的帮助,但不太了解它是如何工作的,因此无法让它与我的数据一起工作。有没有人能够解释逻辑步骤中发生的事情的逻辑以及实际从现有表的列中获取哪些变量?我正在寻找从读数表中选择数据(列名是:天、小时、体积)并通过返回所有读数找到每天每小时的平均体积读数(因此按天、小时分组)对于过去的那个小时/天组合(就我的数据集而言)并写出它的平均值。完成后,它将结果写入具有相同列名(日、小时、卷)的不同表。除非我按小时写回,否则“音量”将是过去一天中那个小时的平均值。例如,我想找出过去所有星期三晚上 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;