Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要分组依据的子查询,不带单行函数_Sql_Oracle_Oracle12c - Fatal编程技术网

Sql 需要分组依据的子查询,不带单行函数

Sql 需要分组依据的子查询,不带单行函数,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,根据我的理解,依赖于一个或多个聚合函数以及至少一个单行函数的查询需要放置单行函数 在GROUPBY子句中,这在总体上是有意义的 然而,我正在处理一个在线资源中的问题,遇到了图片中的问题,我的逻辑是,为什么我回答它执行成功但输出不正确,子查询是一个只有聚合函数的查询,让我相信它不需要分组,为什么子查询中需要一个group by?您可以轻松测试: 错误是: ORA-00978:不带分组依据的嵌套分组函数 因此,嵌套的GROUPBY似乎需要Gordon已清除的GROUPBY,“嵌套聚合需要GROUP

根据我的理解,依赖于一个或多个聚合函数以及至少一个单行函数的查询需要放置单行函数 在GROUPBY子句中,这在总体上是有意义的

然而,我正在处理一个在线资源中的问题,遇到了图片中的问题,我的逻辑是,为什么我回答它执行成功但输出不正确,子查询是一个只有聚合函数的查询,让我相信它不需要分组,为什么子查询中需要一个group by?

您可以轻松测试:

错误是:

ORA-00978:不带分组依据的嵌套分组函数


因此,嵌套的GROUPBY似乎需要Gordon已清除的
GROUPBY

,“嵌套聚合需要GROUPBY子句”。如果我们把查询分为2个部分,第一部分在给定特定值的情况下是很好的。p> 例如:

在此链接中运行查询: ::

但是如果我们把两个聚合函数组合起来,我们会得到一个错误

select max(count(PROD_CATEGORY_ID)) from SH.PRODUCTS ; --> Throws ORA-00978
select max(count(PROD_CATEGORY_ID)) from SH.PRODUCTS 
group by PROD_CATEGORY_ID; -->Gives max count of prod_cat
给出了最终结果:

select count(*), PROD_CATEGORY_ID from SH.PRODUCTS 
group by PROD_CATEGORY_ID 
having count(*)=(select max(count(*)) from SH.PRODUCTS group by PROD_CATEGORY_ID);
链接中的好例子:

select max(count(PROD_CATEGORY_ID)) from SH.PRODUCTS ; --> Throws ORA-00978
select max(count(PROD_CATEGORY_ID)) from SH.PRODUCTS 
group by PROD_CATEGORY_ID; -->Gives max count of prod_cat
select count(*), PROD_CATEGORY_ID from SH.PRODUCTS 
group by PROD_CATEGORY_ID 
having count(*)=(select max(count(*)) from SH.PRODUCTS group by PROD_CATEGORY_ID);