create table testTable
(
pid int identity (1,1),
date_created datetime,
rowid nvarchar(64)
)
insert testTable values (dateadd(hh, 1, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 1, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 3, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 3, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 1, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 5, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 5, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 1, getdate()), cast(newid() as varchar(64)))
insert testTable values (dateadd(hh, 4, getdate()), cast(newid() as varchar(64)))
select * from testTable
select
datepart(MM, date_created) AS [Month],
datepart(dd, date_created) AS [Day],
datepart(hh, date_created) AS [Hour],
count(pid) as ItemCount
from testtable
group by datepart(MM, date_created), datepart(dd, date_created), datepart(hh, date_created)
drop table testTable