我有以下oracle表,其中datetime在一个列中&数据类型为字符串
f_ID f_type f_date
1001 A 3/30/14 12:20:00 PM
1001 B 3/30/14 10:20:00 AM
1002 A 2/3/14 11:0:00 AM
1002 B 2/3/14 9:00:00 AM
1003 A 2/13/14 10:00:00 AM
1003 B 12/13/14 10:00:00 AM
1111 B 12/13/14 10:00:00 AM
我希望计算所有已计算的货物的平均时间>所以1001的出货时间差是2小时,1002是2小时,1003是10个月(303 x 24 = 7272)小时。 1111具有count = 1,因此可以从平均值中排除。
所以平均结果应为(2+2+7272)/3 = 2425.33 hours
。
如何查询?
答案 0 :(得分:0)
这个应该有效:
WITH t AS
(SELECT f_ID, ABS(b.f_date-a.f_date)*24 AS duration
FROM my_table a
JOIN my_table b USING (f_ID)
WHERE a.f_type = 'A'
AND a.f_type = 'B')
SELECT AVG(duration)
FROM t;