[英]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.