我有一个包含以下项目的数据集:
- 一个月 - 年
- 帐户nbr
- 收入总计
如果一个帐户在一个月内没有收入总计,则该帐户没有记录。
我想知道每个帐户 - 账户连续没有收入的最大数量是多少?
例如,如果帐户123在过去12个月中的每个月都有收入为0。
如果帐户987连续4个月有收入,则连续5个月没有收入,然后在剩下几个月内收入为5个。
。如果帐户657每隔一个月进行一次活动,那么他们的数量为1,b/c 1是连续的最多#,没有活动。
预先感谢
样本数据
**Accnt** |**Month-Yr** |**Revenue**
123 |8/1/2016 |1000
123 |9/1/2016 |1500
123 |10/1/2016 |500
123 |11/1/2016 |100
123 |12/1/2016 |250
123 |1/1/2017 |750
123 |2/1/2017 |900
123 |3/1/2017 |700
123 |4/1/2017 |1200
123 |5/1/2017 |250
123 |6/1/2017 |750
123 |7/1/2017 |900
123 |8/1/2017 |700
123 |9/1/2017 |1200
987 |8/1/2016 |100
987 |9/1/2016 |250
987 |10/1/2016 |750
987 |11/1/2016 |900
987 |5/1/2017 |700
987 |6/1/2017 |1300
987 |7/1/2017 |250
987 |8/1/2017 |750
987 |9/1/2017 |900
657 |8/1/2016 |700
657 |10/1/2016 |1200
657 |12/1/2016 |100
657 |2/1/2017 |250
657 |4/1/2017 |750
657 |6/1/2017 |900
657 |8/1/2017 |700
Accnt 123 would be 0 months
Accnt 987 would be 5 months
Accnt 657 would be 1 month
怎么样?(因为您发布的信息最少,所以我保留在我解释时创建自己的DDL的权利)。
IF OBJECT_ID ('tempdb..#') IS NOT NULL
DROP TABLE #sales
GO
CREATE TABLE #sales
(Dte datetime
,amt int
,id int
,rownum int identity PRIMARY KEY
)
INSERT INTO #sales
SELECT '9/1/17',1200, 987
INSERT INTO #sales
SELECT '10/1/17',1100, 987
INSERT INTO #sales
SELECT '11/1/17',1000, 987
INSERT INTO #sales
SELECT '5/1/18',1900, 987
INSERT INTO #sales
SELECT '6/1/18',120, 987
INSERT INTO #sales
SELECT '4/1/17',100, 657
INSERT INTO #sales
SELECT '5/1/17',190, 657
INSERT INTO #sales
SELECT '7/1/17',12, 657
GO
SELECT MAX(DATEDIFF(dd,a.dte,b.dte)), a.id
FROM #sales a
INNER JOIN #sales b
ON a.rownum = b.rownum-1
AND a.id =b.id
GROUP BY a.id