2015-10-28 132 views
0

所以,我有以下Oracle SQL數據庫表:ORACLE SQL查詢 - AVG

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:組函數是不是在這裏

回答

0

允許試試這個

SELECT customerID, name 
FROM Customer 
WHERE noOfDvdHiring > (select AVG(noOfDvdHiring) from customer); 
+0

謝謝,我認爲這樣可以,但我收到了這個: \t ORA-00904:「NOOFDVDHIRE」:無效的標識符 – Thomas

+0

實際的列名是'noofdvdhiring'。改變了它。 –

+0

如果可能的話,你能否幫助我解決另一個問題? – Thomas

0

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); 
+0

謝謝你,對於我得到以下錯誤的方法: \t ORA-00904:「NOOFDVDHIRE」:無效標識符 – Thomas