2015-11-06 64 views
0

我已經定義了三個表如下:多表內加入

merchant (name: string, price: integer) 
finance (no: string, gname: string, minCredit: integer) 
borrower (dname: string, gno: string, deliverydate: date) 

示例數據集中:

merchant | finance | 
ally s  jumbo 
jim b  jumbo 
jimmy g  small 

borrower.dname和borrower.gno外鍵引用merchant.name和金融。沒有

我想寫一個查詢查找具有嚴格的借款人數量超過所有金融類型的平均借款人數量的財務。我想輸出的財務號碼(編號)

我曾嘗試:這似乎

select f.no as no 
from borrower b 
join merchant m on m.name = b.dname 
join finance f on f.no = b.gno 
where count(m.name) > avg(b.dname) 

不給我正確的結果。我認爲我加入表格的道路是正確的,我相信我的問題與where語句(?)有什麼關係讓我走上正確的道路?

回答

-1
;WITH findata AS 
(SELECT 
    f.no 
    ,COUNT(*) Cnt 
FROM 
    finance f 
GROUP BY 
    f.no) 
SELECT 
    * 
FROM 
    findata 
WHERE 
    Cnt > (SELECT AVG(Cnt) FROM findata) 
+2

的','需要在語句,並非一開始 –

+0

另外的走到底什麼@a_horse_with_no_name說,不是onlt的';'是** **放錯了地方。它也是**競爭性的可選**,可以被刪除,因爲真的不需要**。 –