2015-05-20 77 views
0

我有下面的子查詢的問題:計算字段返回相同的值SQL

(select AVG(retail) 
from STOCK 
where category = 'TOYOTA' or category = 'HONDA') as AVERAGE_SALE_PRICE 

整個查詢:

select 
    d.name, s.category,(select AVG(retail) 
    where category = 'TOYOTA' or category = 'HONDA') as AVERAGE_SALE_PRICE 
from dealer d join stock s using (dealerID) 

的問題是,這個計算領域的所有返回相同的值在查詢中的行,我明白,我可能會添加一個GROUP BY,但我很困惑,在哪裏...

感謝您的任何幫助

+0

你應該加入STOCK表中主要選擇你的駕駛臺。 –

+0

你可以發佈這些樹表的ddl嗎?股票和交易商之間,股票和塔之間是否有外鍵? –

+0

@StefanYordanov我似乎犯了一個錯誤,我加入股票和經銷商表,這兩個都有dealerID作爲鍵 – ITworldR

回答

1

嘗試此查詢:

select AVG(retail) as AVERAGE_SALE_PRICE, category 
from STOCK 
where category='TOYOTA' or category='HONDA' 
group by category 

Update.This應該給你想要的結果:

select 
    d.name, 
    s.category, 
    (select AVG(s.retail) 
    from stock s1 
    where s1.dealerID = s.dealerID 
      and (s1.category = 'TOYOTA' or s1.category = 'HONDA') as AVERAGE_SALE_PRICE 
from dealer d 
join stock s using (dealerID) 
+0

中的兩個選定品牌的平均零售價格我可以將其作爲嵌套子查詢包裝嗎?因爲我似乎無法使用完整的查詢,而我正在使用表加入 – ITworldR

+0

我認爲不。您應該加入STOCK表格,並在您的主要查詢中駕駛表格。爲您的用例添加更多信息。 –

+0

我會添加上面的整個查詢:D謝謝你的幫助 – ITworldR