对不起标题,因为它几乎是不言自明的。
因此,我有一个数据库,该数据库每天填充有二手车报价,每个数据库都有以下列:price
,in_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_date
和exit_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_date
和exit_date
。
谢谢。
答案 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;