I've got a monitoring system that is collecting data every 1 minutes. I'd like to aggregate the collected data by 15 minute intervals. I used this: (DATEPART (minute,date_report) / 15 ) but it does not work Is there any way to do? Any help is much appreciated!
My current query is:
SELECT DISTINCT fio,date_report, vocheredi,PS
FROM
(
select distinct TempTable.fio,TempTable.date_report, count (distinct id) as vocheredi
,(CASE WHEN TempTable.workgroup LIKE 'Group East' THEN 'East'
WHEN TempTable.workgroup LIKE 'Group west' THEN 'West'
WHEN TempTable.workgroup LIKE 'Group Centre' THEN 'Centre' END) as PS
FROM dbo.TempTable
WHERE
TempTable.fio = 'employee'
and (TempTable.workgroup = 'East'
or TempTable.workgroup = 'west'
or TempTable.workgroup = 'Centre')
GROUP BY TempTable.fio
,(CASE WHEN TempTable.workgroup LIKE 'Group East' THEN 'East'
WHEN TempTable.workgroup LIKE 'Group west' THEN 'West'
WHEN TempTable.workgroup LIKE 'Group Centre' THEN 'Centre' END)
,TempTable.date_report
) table
WHERE
PS = (@ReportParameter2)
GROUP BY
(DATEPART (minute,date_report) / 15 ) ,fio,date_report, vocheredi,PS
ORDER BY date_report DESC
I want it to show me something like:
fio, date_report,vocheredi,PS
employee, 16:15:00-16:30:00 , 19,East