值之间的平均差SQL

问题描述 投票:0回答:1

我正在尝试使用SQL查找值之间的差异,其中第二个值始终大于上一个值。

示例数据:

Car_ID | Trip_ID | Mileage
1       1         10,000
1       2         11,000
1       3         11,500
2       1         5,000
2       2         7,000
2       3         8,000

期望计算:

Car_ID: 1
(Trip 2 - Trip 1) = 1,000 
(Trip 3 - Trip 2) = 500
Average Difference: 750

Car_ID: 2
(Trip 2 - Trip 1) = 2,000 
(Trip 3 - Trip 2) = 1,000
Average Difference: 1,500

预期输出:

Car_ID | Average_Difference
1        750 
2        1,500
sql average difference
1个回答
3
投票

您可以使用聚合:

select car_id,
       (max(mileage) - min(mileage)) / nullif(count(*) - 1, 0)
from t
group by car_id;

即,您定义的平均值是最大值减去最小值,再除以行程次数减去一。

© www.soinside.com 2019 - 2024. All rights reserved.