【发布时间】:2011-03-22 19:16:01
【问题描述】:
我正在寻找解决此问题的最佳方法,但到目前为止还没有任何运气。 我正在使用 Microsoft SQL Server 2008。
所以这里是一个用户的样本数据:
=======================
姓名状态日期
=======================
BOB 活跃于 2011-03-07
鲍勃活跃于 2011 年 3 月 11 日
BOB 已禁用 2011-03-15
BOB 已禁用 2011-03-21
鲍勃活跃于 2011 年 3 月 23 日
鲍勃活跃于 2011 年 3 月 28 日
=======================
我希望将其分组,以便它显示用户实际更改状态的时间,而不是下次检查结果是否保持不变时,因此查询返回的内容如下:
=======================
BOB 活跃于 2011-03-07
BOB 已禁用 2011-03-15
鲍勃活跃于 2011 年 3 月 23 日
=======================
这是我无权访问的数据。
对于以我需要的方式获取这些数据的最佳方法有什么想法吗?请记住,这是针对数千条记录的,如果可能,应考虑性能。我想不出一种方法来进行分组,这样它就不会将“激活”组合在一起并使用 MIN 聚合函数。
有没有办法循环遍历并使数据看起来像这样,以便在最后一列进行分组和分组?这甚至是最好的方法吗?
=======================
名称状态日期组
=======================
BOB 活跃于 2011-03-07 1
BOB 活跃于 2011-03-11 1
BOB 已禁用 2011-03-15 2
BOB 已禁用 2011-03-21 2
BOB 活跃于 2011-03-23 3
BOB 活跃于 2011-03-28 3
=======================
我所有的搜索都没有成功,如果有人可以给我一个关键词来搜索,让我走上正确的道路,我将不胜感激。
【问题讨论】:
标签: sql sql-server-2008 grouping