简体   繁体   English

Oracle GROUP BY和日期精度

[英]Oracle GROUP BY and date precision

I've got a table with two date fields : BEGIN_DATE and END_DATE 我有一个带有两个日期字段的表: BEGIN_DATEEND_DATE

When I subtract these two fields, I get a number in days. 当我减去这两个字段时,我得到的天数。
I want this number in seconds because the difference between these two fields is very tiny (~ 1s). 我想要这个数字以秒为单位,因为这两个字段之间的差异非常小(〜1s)。
So I proceed by doing : 所以我继续做:

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');

Here is the result (same precision with group by minutes ) : 这是结果(精度与group by minutes相同):
在此处输入图片说明


Well. 好。
Then if I group the results by hour or by day : 然后,如果我按小时将结果分组:

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');

I've got this result : 我有这个结果:
在此处输入图片说明

The DELTA precision is better and I can't understand why ! DELTA精度更好,我不明白为什么!
Could someone explain me ? 有人可以向我解释吗?

My bad, don't go further, the problem is relatively simple. 我的不好,请不要进一步,问题相对简单。

Floating results are given by : SUM(DELTA) / COUNT(Grouped rows). 浮动结果由SUM(DELTA)/ COUNT(分组行)给出。

So if I've got 20 values at 2015-11-02 19. 所以如果我在2015-11-02有20个值19。
9 of these values are equal to 1, remainder equals to 0. 这些值中的9个等于1,其余等于0。
We've got 9/20 = 0.45 which is absolutely logic. 我们得到9/20 = 0.45,这绝对是逻辑。 I just verified it. 我刚刚验证了。

Thank you anyway for your time. 无论如何,谢谢您的时间。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM