[英]Oracle GROUP BY and date precision
I've got a table with two date fields : BEGIN_DATE
and END_DATE
我有一个带有两个日期字段的表: BEGIN_DATE
和END_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.