2012-01-02 78 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

请纠正错字组 – 2012-01-02 15:38:24

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;