如何在几个月内自动获取每一天的记录数量?

时间:2016-11-15 08:42:40

标签: sql oracle11g

我有一张TableA表,其中有客户记录。它还有一种叫做“名字”的特定类型。基本上每天都会注册新客户,并将此注册记录添加到数据库中,其名称为' NAME'类型。我目前需要的只是AUG,SEP,OCT和NOV每天到15日的NAME参考号的数量。

select count(referenceid)
from tableA
where type = 'NAME'

如果我需要整整一个月的计数,我会做以下

select count(referenceid)
from tableA
where type = 'NAME'
  and TIMESTAMP BETWEEN TO_DATE('01-AUG-16') AND TO_DATE('31-AUG-16')

我不确定如何自动获取上述所有月份的每日计数。如果没有自动化方式,我必须每天运行相同的查询近90次。

如果有人可以提供帮助,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,请尝试GROUP BY每天使用TIMESTAMP

SELECT TO_CHAR(TIMESTAMP, 'YYYY-MM-DD') AS yourDate, COUNT(referenceid) 
FROM tableA 
WHERE type='NAME' AND TIMESTAMP BETWEEN TO_DATE('01-AUG-16') AND TO_DATE('31-AUG-16')
GROUP BY TO_CHAR(TIMESTAMP, 'YYYY-MM-DD')
ORDER BY yourDate

答案 1 :(得分:-1)

select 
    count(referenceid),
    DATENAME(MONTH,[datetimecolumn]) 
from tableA 
where type='NAME' 
GROUP BY MONTH([datetimecolumn])