获得了只有一列的表ABC。日期列"created“。所以样本值是这样的;
created
2009-06-18 13:56:00
2009-06-18 12:56:00
2009-06-17 14:02:00
2009-06-17 13:12:23
2009-06-16 10:02:10我想写一个查询,这样结果就是:
count created
2 2009-06-18
2 2009-06-17
1 2009-06-16基本上计算每个日期有多少条目,但忽略时间。
这是在带有Oracle的PL-SQL中。
有什么想法吗?
发布于 2009-06-18 21:06:06
select count(*), to_char('YYYY-MM-DD', created) from ABC group by to_char('YYYY-MM-DD', created)
发布于 2009-06-18 21:06:06
TRUNC函数返回日期时间的日期。
select trunc(created),count(*) from ABC group by trunc(created)发布于 2009-06-18 21:45:43
为了完整起见,我将添加一个适用于任意定义的存储桶大小的通用变体:
SELECT trunc( (created - to_date('2000.01.01', 'YYYY.MM.DD'))
* 24
) / 24
+ to_date('2000.01.01', 'YYYY.MM.DD') theDate
, count(*)
FROM Layer
GROUP BY trunc( (created - to_date('2000.01.01', 'YYYY.MM.DD'))
* 24
) / 24
+ to_date('2000.01.01', 'YYYY.MM.DD')
ORDER BY 1;上面的查询将按小时给出计数;使用小于24的值来获得较大的间隔,或使用较大的值来创建较小的间隔。通过颠倒*和/的位置,您可以使您的存储桶以天为增量(例如,执行“/7”而不是“* 24”将得到每个存储桶一周的存储桶。
https://stackoverflow.com/questions/1015165
复制相似问题