2014-04-28 210 views
0

我有一個表格,其中我有一些價格爲不同類型的酒店房間陳述。 我想查詢,以便我得到每個房間的平均價格,但mySQL只給我1平均,而不是我需要的2。我的代碼如下:MySql多種平均水平

SELECT AVG(Price) From `Room` WHERE (Type='Double') OR (Type='single'); 

我想它我的OR似乎來煩我聲明..

+0

這個問題似乎是題外話,因爲它缺乏任何形式的努力 – Strawberry

回答

0
SELECT AVG(case when Type='Double' then Price else 0 end) as avg_double_price, 
     AVG(case when Type='Single' then Price else 0 end) as avg_single_price, 
     sum(Type='Double') as double_count, 
     sum(Type='Single') as single_count 
From `Room` 
+0

謝謝你的快速回答:) 但是我想我沒有解釋自己夠好! 我有雙人房價格和單人房價格。 我希望sql能夠分別計算單人間和雙人間的平均價格。 – Avacay

+0

我更新了答案。如果您添加示例數據和預期輸出,您的問題將更加清晰。 –

+0

對不起,這是我的第一個線程在這裏。我會盡我所能:) – Avacay

1
SELECT AVG(Price), `Type` 
FROM `Room` 
GROUP BY `Type` 
+0

真棒,非常感謝你! :) – Avacay

+0

如果我想單獨排除或編寫每種類型的代碼,那麼我應該怎麼做? – Avacay

+0

您可以在FROM語句後添加您的WHERE(Type ='Double')OR(Type ='single') – stomo21