天天看點

計算平均時間思路算法解析:sql思路:

思路算法解析:

一共三天的平均時間分别為:20:40,21:20,21:10.

平均時間計算如下:

總的分鐘數=20*60 + 21*60 + 21*60 + 40 + 20 + 10=1200 + 1260 + 1260 + 70 = 3790

平均小時=(總的分鐘數/天數)/ 60 = (3790/3)/ 60 = 21(整除取整數部分)

平均分鐘數=(總的分鐘數/天數)% 60 =  (3790/3)% 60 = 3 

最後将小時數和分鐘數連起來就是21:03分是平均時間。

sql思路:

-- 【四級】拼接結果(時:分)
SELECT dd.*,dd.hhh||':'||dd.mmm from (
-- 【三級】查詢平均小時數和平均分鐘數
-- 平均小時數=(總分鐘數/天數)/ 60  取整
-- 平均分鐘數=(總分鐘數/天數)% 60  取整
select trunc(cc.ALLMI/cc.days/60) hhh,trunc(MOD(cc.allMi/cc.days,60)) mmm from (
-- 【二級】查詢總分鐘數和總條數:{總分鐘數:sum(時*60)+sum(分) },{總條數:count(1)}
select  sum(bb.hh*60)+sum(bb.MI) allMi,count(1) days from (
-- 【一級】查詢出一個清單:時,分
select aa.* from (
    --xxx 這裡需要查出你的時分清單hh mi
) aa--【一級END】
) bb--【二級END】
) cc--【三級END】
) dd--【四級END】