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
我关心最后一部分 -first_completed_date > - 在过去 30 天内。 从first_completed_date计算过去30天的正确方法是吗?
您将“first_completed_date”与其自身进行了比较,但是,需要将其与当前日期减去 30 天进行比较
first_completed_date > NOW() - INTERVAL '30 DAY';