gpt4 book ai didi

sql - 如何对连续范围进行分组

转载 作者:行者123 更新时间:2023-12-01 23:26:12 25 4
gpt4 key购买 nike

我知道一些基本的 SQL,但是这个超出了我的能力范围。我看了高低,但没有骰子。我需要查看以下数据,我可以在应用程序层代码中执行此操作。但不幸的是,对于这个特定的情况,代码必须放在数据层中。

我正在使用 T-SQL。

表格

Date      Crew       DayType
01-02-11 John Doe SEA
02-02-11 John Doe SEA
03-02-11 John Doe SEA
04-02-11 John Doe HOME
05-02-11 John Doe HOME
06-02-11 John Doe SEA

我需要这样的 View

DateFrom  DateTo    Name      DayType
01-02-11 03-02-11 John Doe SEA
04-02-11 05-02-11 John Doe HOME
06-02-11 06-02-11 John Doe SEA

不幸的是,应用层需要基表采用所示的格式。这可以在查询中执行吗?

最佳答案

WITH    q AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY crew, dayType ORDER BY [date]) AS rnd,
ROW_NUMBER() OVER (PARTITION BY crew ORDER BY [date]) AS rn
FROM mytable
)
SELECT MIN([date]), MAX([date]), crew AS name, dayType
FROM q
GROUP BY
crew, dayType, rnd - rn

您可能会对这篇文章感兴趣:

关于sql - 如何对连续范围进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com