ORACLE SQL 查询 - AVG
ORACLE SQL Query - AVG
所以我有以下 Oracle SQL 数据库 table:
create table Customer
(customerID char(25) not null,
name char(50),
address char(100),
dateRegistered DATE,
noOfDvdHiring int,
primary key (customerID));
我有以下查询:列出所有租用 DVD 数量超过所有客户当前租用 DVD 平均数量的唯一编号和名称。
我确定这应该涉及嵌套查询,但我不确定从哪里开始?
我试过:
SELECT customerID, name
FROM Customer
WHERE noOfDvdHire > AVG(noOfDvdHire);
但收到此错误消息:ORA-00934:此处不允许组函数
试试这个
SELECT customerID, name
FROM Customer
WHERE noOfDvdHiring > (select AVG(noOfDvdHiring) from customer);
2 种方式...区别在于执行计划
select * from (
select customer_id, noOfDvdHire, avg(noOfDvdHire) over () avgg from Customer
) where noOfDvdHire > avgg
select customer_id, noOfDvdHire from Customer
where noOfDvdHire > (select AVG(noOfDvdHire) from customer);
所以我有以下 Oracle SQL 数据库 table:
create table Customer
(customerID char(25) not null,
name char(50),
address char(100),
dateRegistered DATE,
noOfDvdHiring int,
primary key (customerID));
我有以下查询:列出所有租用 DVD 数量超过所有客户当前租用 DVD 平均数量的唯一编号和名称。
我确定这应该涉及嵌套查询,但我不确定从哪里开始?
我试过:
SELECT customerID, name
FROM Customer
WHERE noOfDvdHire > AVG(noOfDvdHire);
但收到此错误消息:ORA-00934:此处不允许组函数
试试这个
SELECT customerID, name
FROM Customer
WHERE noOfDvdHiring > (select AVG(noOfDvdHiring) from customer);
2 种方式...区别在于执行计划
select * from (
select customer_id, noOfDvdHire, avg(noOfDvdHire) over () avgg from Customer
) where noOfDvdHire > avgg
select customer_id, noOfDvdHire from Customer
where noOfDvdHire > (select AVG(noOfDvdHire) from customer);