mysql group with with unformatted dates and auto sum

时间:2014-06-29 23:05:33

标签: php mysql

我正在为我的网站创建房价搜索,并且我拥有过去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不是那么好,可以告诉我如何组合年份,然后按年计算每个房产,并同时提高价格以获得总房产和总价格,以便我可以计算平均值。

非常感谢

2 个答案:

答案 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;