提问人:ERJAN 提问时间:10/28/2023 最后编辑:ERJAN 更新时间:10/28/2023 访问量:36
如何在PostgreSQL中选择最近30天内的日期?
how to select within last 30 days from date in postgresql?
问:
SQL表有出租车司机的数据,列是:
id integer
client_id integer (Foreign keyed to events.rider_id)
driver_id integer
city_id integer (Foreign keyed to cities.city_id)
client_rating integer
driver_rating integer
predicted_eta integer
actual_eta integer
first_completed_date Timestamp ,
status Enum(‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)
如何计算过去 30 天内所有已完成行程的实际预计到达时间与预测预计到达时间之间的第 90 个百分位差?
select
percentile_cont(0.90) within group (order by actual_eta-predicted_eta) as percentile_90_diff
from trips t where status='completed'
and first_completed_date > (first_completed_date - INTERVAL '30 DAY')::DATE
我关心的是过去 30 天内的最后一部分 - first_completed_date >。 从first_completed_date开始计算过去 30 天的正确方法是否正确?
答:
2赞
agamil
10/28/2023
#1
您将“first_completed_date”与自身进行比较,但是,需要将其与当前日期减去 30 天进行比较
first_completed_date > NOW() - INTERVAL '30 DAY';
评论
first_completed_date
d > (d - '30 days')
d > (CURRENT_DATE - '30 days')