计数差异 - Oracle SQL group by query

时间:2017-03-07 21:55:28

标签: sql oracle

我想在下午3点到下午4点之间获取记录数。第一个查询返回473个记录,而第二个查询在下午3点到下午4点之间返回474。请您告诉我哪一个可能正确或我需要做些什么来识别提供准确结果的查询?

select count(*) 
from table
where start_ts between 
  to_timestamp('2017-03-06 15:00:00','YYYY-MM-DD     HH24:MI:SS') and to_timestamp('2017-03-06 16:00:00','YYYY-MM-DD HH24:MI:SS')


   select count(*),to_char(start_ts,'YYYY-MM-DD HH24') 
from table
where start_ts between 
 to_timestamp('2017-03-06 00:00:00','YYYY-MM-DD     HH24:MI:SS') and to_timestamp('2017-03-06 23:59:59','YYYY-MM-DD HH24:MI:SS')
group by to_char(start_ts,'YYYY-MM-DD HH24')
order by to_char(start_ts,'YYYY-MM-DD HH24')

1 个答案:

答案 0 :(得分:2)

这是一个猜测。第一个查询返回374条记录,第二条返回两行,一行有373条记录,另一条有1条记录。

1记录的时间完全' 2017-03-06 16:00:00',所以它显示在与其余记录不同的bin中。

这似乎是一个似是而非的解释,虽然它要求数字按其他顺序排列。