我有一個表,其中每個行項目包含單元#,日期戳和牀位數。每個有牀位數的單位都會創建一條記錄。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) –