我有一张驾驶员速度和路段的表格:
driver_lpr | segment | speed 0000001 | A | 30 0000002 | B | 60 0000003 | A | 50 0000004 | A | 100 0000005 | B | 60
我想要一张每段平均速度的表格
segment | average speed A | 47.368 B | 60
如何在SQL中完成此操作?
在平均速度时,需要谐波平均值。
直截了当的AVG()方法是错误的,算术平均值对平均速度产生了错误的结果。
AVG()
谐波均值没有预定义的函数,但是可以通过以下查询实现:
SELECT segment, COUNT(*)/SUM(1e0/speed) AS avg_speed FROM T GROUP BY segment