我正在为我的网站创建房价搜索,并且我拥有过去15年以前房屋销售的土地登记数据。
我正在尝试使用mysql查询来搜索之前房屋销售的邮政编码,然后按年份对它们进行分组,这样我就会找到这样的结果:
2043 avg price was £158,000
2013 avg price was £135,000
2012 avg price was £128,000
and so on.
我的数据存储在我的数据库中,如下所示:
Date Street PostCode Price
2014-03-24 00:00 24 HATHERLEY AVENUE L23 0SD 192500
2013-03-24 00:00 12 staley road L23 0SR 185000
2014-03-24 00:00 1 miitchell road L23 0SD 212000
2013-03-24 00:00 2 black grove L23 2PL 95000
2014-03-24 00:00 73 mark road L23 4PL 275000
我有以下SQL查询:
SELECT * FROM PricePaid ,
WHERE postCode = '$loc'
ORDER BY Date DESC ");
我目前正在返回结果并使用php计算所有平均值。我知道有一种方法可以在mysql中做到这一点,因为这个数据库有数百万行,我正在寻找一种流线方式来做到这一点。
我的mysql不是那么好,可以告诉我如何组合年份,然后按年计算每个房产,并同时提高价格以获得总房产和总价格,以便我可以计算平均值。
非常感谢
答案 0 :(得分:3)
使用GROUP BY
SELECT YEAR(Date) AS year, AVG(Price) AS avg_price
FROM PricePaid
WHERE postCode = '$loc'
GROUP BY year
ORDER BY year DESC
答案 1 :(得分:3)
SELECT YEAR(Date),avg(Price) FROM PricePaid WHERE postCode=? GROUP BY 1 ORER BY 1 DESC;