【问题标题】:SQL select statement with increment带增量的 SQL 选择语句
【发布时间】:2011-02-14 02:03:00
【问题描述】:

目前我在 PHP 中使用 for 语句来获取此 SQL 语句的所有月份,但想知道我是否可以使用 SQL 完成所有操作。

基本上,我必须获得平均挂牌价格,以及 1 年前每个月的平均售价,其中销售日期 = 月份。

使用 PHP 很简单,但会创建 12 个数据库命中。

我正在尝试下面的 sql 语句,但它返回的列表完全乱序

选择 平均(上市价格), 平均(销售价格), 计数(上市日期), DATE(SellingDate) 作为日期, MONTH(SellingDate) 作为月份, YEAR(SellingDate) 作为年份 从`rets_property_resi` WHERE 面积 = '5030' AND 状态 = 'S' AND SellingDate "小于" = 'NOW()' 按月分组 按月排序 限制 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 等...

感谢任何帮助!

【问题讨论】:

    标签: php sql select


    【解决方案1】:

    试试这个:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多