目前我在PHP中使用for语句来获取此SQL语句的所有月份,但是想知道我是否可以使用SQL完成所有操作。
基本上我必须得到平均上市价格,并且每个月的平均售价可以追溯到1年,其中卖出日期=月份。
使用PHP很简单,但会创建12个数据库命中。
我正在尝试下面的sql语句,但它完全无序返回列表
SELECT avg(ListingPrice), avg(SellingPrice), count(ListingDate), DATE(SellingDate) as date, MONTH(SellingDate) as month, YEAR(SellingDate) as year FROM `rets_property_resi` WHERE Area = '5030' AND Status = 'S' AND SellingDate "less then" = 'NOW()' GROUP BY month ORDER BY month desc LIMIT 0,12
“less then”被剥夺了声明,所以请用正确的代码替换“less then”
输出:
867507.142857 877632.492063 63 1996-12-24 12 1996 971355.833333 981533.333333 60 1997-11-18 11 1997 949334.328358 985453.731343 67 1997-10-23 10 1997 794150.000000 806642.857143 70 1996-09-20 9 1996 968371.621622 988074.702703 74 1997-08-21 8 1997 1033413.366337 1053018.534653 101 1997-07-30 7 1997 936115.054795 962787.671233 73 1996-06-07 6 1996 875378.735632 906921.839080 87 1996-05-16 5 1996 926635.616438 958561.643836 73 2010-04-13 4 2010 1030224.472222 1046332.291667 72 2010-03-31 3 2010 921711.458333 924177.083333 48 1997-02-28 2 1997 799484.615385 791551.282051 39 1997-01-15 1 1997
正如你所看到的,它是从随机日期开始的,我需要从2010-03,2010-02,2010-01等开始...
任何帮助表示赞赏!
答案 0 :(得分:2)
试试这个:
SELECT
avg(ListingPrice),
avg(SellingPrice),
count(ListingDate),
MONTH(SellingDate) as month,
YEAR(SellingDate) as year
FROM `rets_property_resi`
WHERE Area = '5030'
AND Status = 'S'
AND SellingDate <= NOW()
GROUP BY year, month
ORDER BY year desc, month desc
LIMIT 0,12