sql嵌套聚合函数

niknxzdl  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(547)
SELECT MAX(AVG(SYSDATE - inv_date)) FROM invoice;

这个查询有什么问题?
平均值返回单个值没有最大值需要一个组来处理,所以它不执行并给出错误?请解释工作这是一个测验问题,根据它不会执行我想知道为什么它不执行我不能弄清楚嵌套聚合函数是允许的,对吗?

yzckvree

yzckvree1#

oracle允许嵌套聚合函数(请参阅文档)。
但是,它需要一个 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 .
如果你好奇的话,我不喜欢这种扩展功能。我不认为它真的能解决问题。

相关问题