SQLite如何获取时间范围内可用报价的平均值

时间:2018-08-20 14:59:20

标签: sql sqlite

对不起标题,因为它几乎是不言自明的。

因此,我有一个数据库,该数据库每天填充有二手车报价,每个数据库都有以下列:pricein_date(注册报价的日期)和exit_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

问题是我需要将每一行的in_date与其余各行的in_dateexit_date进行比较,我不知道该怎么做。

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

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**是每行的“固定” in_date值,用于比较其余各行的in_dateexit_date

谢谢。

1 个答案:

答案 0 :(得分:2)

您非常接近。您可以使用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;