SELECT MAX(AVG(SYSDATE - inv_date)) FROM invoice;
此查询出了什么问题?
平均返回单个值否 Max需要一个小组来进行工作,以便它执行并给出错误? 请说明工作 这是一个测验问题,根据该问题将不会执行,我想知道为什么它无法执行的原因,我无法弄清楚嵌套的聚合函数是否正确?
答案 0 :(得分:1)
Oracle允许嵌套聚合功能(请参见documentation)。
但是,它需要GROUP BY
。因此,这是允许的:
SELECT MAX(AVG(SYSDATE - inv_date))
FROM invoice
GROUP BY Cust_ID;
基本上,这是快捷方式:
SELECT MAX(x)
FROM (SELECT AVG(SYSDATE - inv_date) as x
FROM invoice
GROUP BY Cust_Id
) i;
在您的情况下,没有GROUP BY
。 Oracle不允许没有GROUP BY
的嵌套GROUP BY
。
如果您很好奇,我不喜欢这种扩展功能。我看不出它能真正解决问题。