[英]Oracle GROUP BY and date precision
我有一個帶有兩個日期字段的表: BEGIN_DATE
和END_DATE
當我減去這兩個字段時,我得到的天數。
我想要這個數字以秒為單位,因為這兩個字段之間的差異非常小(〜1s)。
所以我繼續做:
SELECT ROUND(AVG((END_DATE-BEGIN_DATE)*3600*24),2) AS DELTA,
TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24:mi:ss') AS DEB,
TO_CHAR(END_DATE, 'yyyy-mm-dd hh24:mi:ss') AS FIN
FROM MYTABLE
GROUP BY TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24:mi:ss'),
TO_CHAR(END_DATE, 'yyyy-mm-dd hh24:mi:ss');
好。
然后,如果我按小時或天將結果分組:
SELECT ROUND(AVG((END_DATE-BEGIN_DATE)*3600*24),2) AS DELTA,
TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24') AS DEB,
TO_CHAR(END_DATE, 'yyyy-mm-dd hh24') AS FIN
FROM MYTABLE
GROUP BY TO_CHAR(BEGIN_DATE, 'yyyy-mm-dd hh24'),
TO_CHAR(END_DATE, 'yyyy-mm-dd hh24');
DELTA
精度更好,我不明白為什么!
有人可以向我解釋嗎?
我的不好,請不要進一步,問題相對簡單。
浮動結果由SUM(DELTA)/ COUNT(分組行)給出。
所以如果我在2015-11-02有20個值19。
這些值中的9個等於1,其余等於0。
我們得到9/20 = 0.45,這絕對是邏輯。 我剛剛驗證了。
無論如何,謝謝您的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.