2012-01-02 16 views
0

私は、このMySQLステートメントを使用して、近隣の平均的な資産評価を見つけます。問題は、それぞれの地域にSELECTステートメントを追加する必要があることです。また、多くの地域があります。 'RIVER FRONT'または 'OLD TOWN'を指定することなくそれを行う方法はありますか?より効率的な方法がありますか?MySQLの平均:より効率的なステートメントの作成

SELECT AVG(property_table.assessment) 
FROM property_table, neighborhood_table 
WHERE property_table.id = neighborhood_table.id AND neighborhood_table.neighborhood = 'RIVER FRONT' 
    UNION ALL 
SELECT AVG(property_table.assessment) 
FROM property_table, neighborhood_table 
WHERE property_table.id = neighborhood_table.id AND neighborhood_table.neighborhood = 'OLD TOWN' 

答えて

1

これは、標準のSQL集計文ですと、すべての地域の平均値
左を示してあなたは何のプロパティが周辺に存在しないゼロ値を取得することができます参加します。

SELECT 
    n.neighborhood, COALESCE(AVG(p.assessment), 0) 
FROM 
    neighborhood_table n 
    LEFT JOIN 
    property_table p ON p.id = n.id 
GROUP BY 
    n.neighborhood; 
+0

タイプミスしてグループを修正してください –

0
SELECT AVG(property_table.assessment), neighborhood_table.neighborhood 
FROM property_table 
INNER JOIN neighborhood_table ON property_table.id = neighborhood_table.id 
WHERE neighborhood_table.neighborhood IN ('RIVER_FRONT', 'OLD TOWN') 
GROUP BY neighborhood_table.neighborhood; 
関連する問題