【发布时间】:2017-05-26 21:32:41
【问题描述】:
所以我有一个这样的表:
---id---datetime---month---active
1 2016-12-01 Dec-16 0
1 2016-12-02 Dec-16 1
1 2017-01-28 Jan-17 1
1 2017-02-03 Feb-17 0
1 2017-02-24 Feb-17 0
1 2017-03-05 Mar-17 0
1 2017-03-24 Mar-17 1
1 2017-04-02 Apr-17 1
1 2017-04-25 Apr-17 1
1 2017-05-02 May-17 1
1 2017-05-28 May-17 0
我想要这样的结果:
---id---monthCount---Active
1 1 0
1 2 1
1 2 0
1 3 1
1 1 0
该表确实有超过 1 个id。
现在我只是使用分区和id、active 和datetime 排序来获取最小日期和最大日期之间的差异,但这给了我第一次到1 以及当它最终变为 0 时。我希望通过 active 的每次更改将其详细分开。
我怎样才能做到这一点?
【问题讨论】:
标签: sql-server sql-server-2012 gaps-and-islands