我只是不知道如何使它工作,我如何从其他选择中选择平均值
select avg(avg(valoare)) from (select avg(valoare) from note
where nr_matricol=111 group by ID_CURS)
我也尝试了
select avg(alias) from (select avg(valoare) as "alias" from note
where nr_matricol=111 group by ID_CURS)
答案 0 :(得分:1)
第二个查询基本上就是你想要的。但是,一旦开始在SQL中使用双引号作为标识符,这些标识符就会区分大小写:public void AddOrder(int BuyerID, int Price, string ArtPiece)
的名称与"alias"
不同(因为alias
与alias
相同)。
因此,您需要在整个查询中使用双引号:
ALIAS
另一种选择是使用不需要引用的名称:
select avg("alias")
from (
select avg(valoare) as "alias"
from note
where nr_matricol=111 group by ID_CURS
)
尽管Oracle不需要,但为派生表提供别名也是一种很好的编码风格。
select avg(avg_valoare)
from (
select avg(valoare) as avg_valoare
from note
where nr_matricol=111 group by ID_CURS
)
请注意,Oracle 不支持表别名的select avg("alias")
from (
select avg(valoare) as "alias"
from note
where nr_matricol=111 group by ID_CURS
) x --<<< here
关键字,因此您无法使用AS
作为派生表别名。
答案 1 :(得分:1)
您可以使用以下查询。
select avg(alias) from
(select avg(valoare) as alias from note
where nr_matricol=111 group by ID_CURS) X
OR
select avg(avg(valoare)) as alias from note
where nr_matricol=111 group by ID_CURS X