我的資料集看起來像這樣,我需要通過按名稱和日期列對它們進行分組來生成 StartDate (Min)、EndDate(Min)。當型別更改時,按邏輯分組應該中斷并采用 Max date 直到那里。
| 姓名 | 型別 | 日期 |
|---|---|---|
| 一種 | xx | 2018 年 1 月 1 日 |
| 一種 | xx | 2018 年 1 月 2 日 |
| 一種 | 年年 | 2018 年 1 月 3 日 |
| 一種 | xx | 2018 年 1 月 4 日 |
| 一種 | xx | 2018 年 1 月 5 日 |
| 一種 | xx | 2018 年 1 月 6 日 |
輸出如下:
| 姓名 | 型別 | 開始日期 | 結束日期 |
|---|---|---|---|
| 一種 | xx | 2018 年 1 月 1 日 | 2018 年 1 月 2 日 |
| 一種 | 年年 | 2018 年 1 月 3 日 | 2018 年 1 月 3 日 |
| 一種 | xx | 2018 年 1 月 4 日 | 2018 年 1 月 6 日 |
uj5u.com熱心網友回復:
希望這能澄清你。
select Name,Type,min(date) as StartDate,max(date) as EndDate
from Table_Name
group by Type,Name
uj5u.com熱心網友回復:
下面的方法會有點笨拙,但會獲取所需的輸出。存盤桶根據日期(天)差異進行磁區。
declare @tbl table(name varchar(5),type varchar(5),[date] date)
insert into @tbl
values('A','xx','1/1/2018')
,('A','xx','1/2/2018')
,('A','yy','1/3/2018')
,('A','xx','1/4/2018')
,('A','xx','1/5/2018')
,('A','xx','1/6/2018')
select distinct name,type
,min(date)over(partition by name,type,diffmodified order by diffmodified) as [StartDate]
,max(date)over(partition by name,type,diffmodified order by diffmodified) as [EndDate]
from(
select *
,case when max(diff)over(partition by name,type order by [date]) > 1
then max(diff)over(partition by name,type order by [date]) else diff end as [diffmodified]
from(
select *,
isnull(DATEDIFF(day, lag([date],1)
over(partition by name,type order by [date]), [date] ),1)[diff]
from
@tbl)
t)t
uj5u.com熱心網友回復:
在這種情況下,挑戰是按列識別所有目標群體Name并Type考慮差距。Row_Number作為一種可能的解決方案,您可以根據order byDate和Row_Numberorder by Datewith之間的差異使用額外的分組運算式Partion by Name, Type。
With A As (
Select Name, [Type], [Date],
Row_Number() Over (Order by [Date]) As Num,
Row_Number() Over (Partition by Name, [Type] Order by [Date]) As Num_1
From Tbl)
Select Name, [Type],
Convert(VarChar(10), Min([Date]), 103) As StartDate,
Convert(VarChar(10), Max([Date]), 103) As EndDate
From A
Group by Name, [Type], Num - Num_1
Order by StartDate
小提琴手
| 姓名 | 型別 | 開始日期 | 結束日期 |
|---|---|---|---|
| 一種 | xx | 2018 年 1 月 1 日 | 2018 年 1 月 2 日 |
| 一種 | 年年 | 2018 年 1 月 3 日 | 2018 年 1 月 3 日 |
| 一種 | xx | 2018 年 1 月 4 日 | 2018 年 1 月 6 日 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448526.html
上一篇:清單合并失敗并出現多個錯誤,請參閱將專案遷移到android12后的日志
下一篇:添加日期間隔無法處理結束
