我需要根據日期為行分配數字。規則是將相同的數字分配給具有相同日期的多個連續行。當一行的日期值與前一行的日期值不同時,數字會增加。結果集看起來像這樣(第一列將用于確定行順序):
1 7/1/2021 1
2 7/2/2021 2
3 7/2/2021 2
4 7/1/2021 3
5 7/2/2021 4
在這種情況下,日期的值不是相關的。如您所見,同一日期的重復會被分配不同的數值,因為它們不連續。我正在努力弄清楚我將如何實作這一目標。
uj5u.com熱心網友回復:
這是一個間隙和島嶼問題。您需要為查詢提供額外的排序列才能有意義。
如果添加了這些,解決方案將遵循以下原則:
select
d,
1 sum(inc) over(order by ordering_columns) as grp
from (
select d, ordering_columns,
case when d <> lag(d) over(order by ordering_columns) then 1 else 0 end as inc
from t
) x
order by ordering_columns
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/316310.html
標籤:sql sql-server 查询语句
上一篇:多次將選擇查詢的結果用于另一個
