[英]count records based on group of interval(days) on date column
count data between intervals,interval depends on how much older the record 在间隔之间对数据进行计数,间隔取决于记录的保留时间
I have a table called complaint
in which I have many columns with ComplaintDate
,I want to show count of records depends on interval . 我有一个称为
complaint
表,其中的ComplaintDate
有很多列,我想显示记录数取决于时间间隔 。
Following interval will be used to categorized records: 以下间隔将用于对记录进行分类:
I have tried something like this 我已经尝试过这样的事情
select SUM(CASE WHEN ComplaintDate BETWEEN DATEADD (dd,-10,getdate())AND GETDATE() THEN 1 ELSE 0 END) As '0-10',
SUM(CASE WHEN ComplaintDate BETWEEN DATEADD (dd,-20,getdate()) AND DATEADD (dd,-10,getdate()) THEN 1 ELSE 0 END) AS '10-20',
SUM(CASE WHEN ComplaintDate BETWEEN DATEADD (dd,-30,getdate()) AND DATEADD (dd,-20,getdate()) THEN 1 ELSE 0 END) AS '20-30'
FROM Complaint
also i want that day included in 0-10 days interval should not be count in 10-20 or 20-30 days interval and same should apply for other other intervals as well . 我也希望在0-10天间隔内包含的那天不应该在10-20或20-30天间隔内计算,同样的情况也应该适用于其他其他间隔。
select
SUM(CASE WHEN ComplaintDate > DATEADD (dd,-10,getdate()) AND ComplaintDate <= GETDATE() THEN 1 ELSE 0 END) As '0-10',
SUM(CASE WHEN ComplaintDate > DATEADD (dd,-20,getdate()) AND ComplaintDate<=DATEADD (dd,-10,getdate()) THEN 1 ELSE 0 END) AS '10-20',
SUM(CASE WHEN ComplaintDate > DATEADD (dd,-30,getdate()) AND ComplaintDate <=DATEADD (dd,-20,getdate()) THEN 1 ELSE 0 END) AS '20-30'
FROM Complaint
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.