我有一个表,其中每个行项目包含单元#,日期戳和床位数。每个有床位数的单位都会创建一条记录。SQL Server DENSE_RANK()
Unit DateTime Beds
----------------------
ICU 2011-03-23 12
ICU 2011-03-24 24
ICU 2011-03-25 24
ICU 2011-03-26 35
ICU 2011-03-27 24
ICU 2011-03-28 24
我正在尝试取数据并创建一个如下所示的表。
Unit Beds StartDate EndDate
------------------------------
ICU 12 2011-03-23 2011-03-23
ICU 24 2011-03-24 2011-03-25
ICU 35 2011-03-26 2011-03-26
ICU 24 2011-03-27 2011-03-28
问题是,有24张床的行正在合并以获得这些结果。
Unit Beds StartDate EndDate
------------------------------
ICU 12 2011-03-23 2011-03-23
ICU 24 2011-03-24 2011-03-28
ICU 35 2011-03-26 2011-03-26
我尝试使用DENSE_RANK来指定一个排名以用作分组号码来分隔24张床的实例。我想石斑鱼的价值是1,2,2,3,4,4。相反,石斑鱼的值是1,2,2,3,2,2。
SELECT DENSE_RANK() OVER(PARTITION BY Unit ORDER BY Beds) AS Grouper,
Unit, DateTime, Beds
FROM StatsLocation
Grouper Unit DateTime Beds
-------------------------------
1 ICU 2011-03-23 12
2 ICU 2011-03-24 24
2 ICU 2011-03-25 24
3 ICU 2011-03-26 35
2 ICU 2011-03-27 24
2 ICU 2011-03-28 24
你可能感兴趣的是[*这个答案,用row_number()和d解决“间隙和岛屿”问题ense_rank()?*](http://dba.stackexchange.com/a/167069/2639) –