代码之家  ›  专栏  ›  技术社区  ›  Andreu C.

SQLite如何在一个时间范围内获得可用报价的平均值

  •  1
  • Andreu C.  · 技术社区  · 8 年前

    所以我有一个数据库,每天都有二手车的报价,每个都有一列: price , in_date (要约登记之日)和 exit_date (要约终止存在的日期,否则违约为“无效”)。请注意,不再提供的服务将保留在数据库中,并显示相应的“退出日期”。

    我需要的是:

    SELECT 数据库中存在的每个可能的“in_date”的可用报价的平均价格:

    in_date     |  avg price
    -------------------------
    2018-05-27  |  8157
    2018-05-29  |  8240
    2018-06-01  |  8199
    2018-06-02  |  8220
    

    日期 对于每行 退出日期 在其他几排,我不知道怎么做。

    试图将其表达为一些代码:

    SELECT
        in_date**,
        (SELECT avg(price) FROM offers WHERE in_date** > in_date and exit_date > in_date** or exit_date is null)
    from oferted
    GROUP by in_date**
    

    in_date** 成为一个“固定的” 日期 日期 其他行中的。

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Gordon Linoff    8 年前

    你很接近。您可以使用 from

    SELECT d.in_date,
        (SELECT avg(o.price)
         FROM offers o
         WHERE d.in_date > o.in_date and
               (o.exit_date > d.in_date or exit_date is null)
       )
    FROM (SELECT DISTINCT in_date 
          FROM offsets
         ) d;
    
    推荐文章