简体   繁体   English

在oracle数据库的sql视图中使用sum函数

[英]Using sum function in sql view in oracle database

I am trying to create a view using some o group function like sum , avg etc. it is giving error.我正在尝试使用一些 o 组函数(如 sum 、 avg 等)创建一个视图,它给出了错误。

create view sample_view as 
select A,B,C,D,E, 
       (a + b+c+d+e)/5 as Mean_value, 
       GREATEST(a,b,c,d,e)-LEAST(a,b,c,d,e) as range_value, 
       avg(mean_value)  
from samples;

I am getting below error.我得到低于错误。

Error starting at line : 37 in command -
create view sample_view as select A,B,C,D,E, (a + b+c+d+e)/5 as Mean_value, GREATEST(a,b,c,d,e)-LEAST(a,b,c,d,e) as range_value, avg(mean_value)  from samples
Error report -
ORA-00937: not a single-group group function
00937. 00000 -  "not a single-group group function"
*Cause:    
*Action:

Is there anyway to create view in oracle database using group function.无论如何使用组功能在oracle数据库中创建视图。 I also tried sum() and count().我也试过 sum() 和 count()。 all those also giving error.所有那些也给出错误。

问题的根本原因是:您尝试执行包含 GROUP BY 函数(即:AVG 函数、MIN 函数、MAX 函数、SUM 函数、COUNT 函数)的SELECT语句,但缺少GROUP BY 子句。尝试添加Group BY 子句并运行查询。

You can try the below - since avg() is an aggregate function you can not add this with other columns without adding group by the clause -您可以尝试以下操作 - 由于avg()是一个聚合函数,因此您不能在不按子句添加组的情况下将其与其他列一起添加 -

create view sample_view as 
       select A,B,C,D,E, (a + b+c+d+e)/5 as Mean_value, 
              GREATEST(a,b,c,d,e)-LEAST(a,b,c,d,e) as range_value, 
              avg((a + b+c+d+e)/5) over() 
from samples;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM