获取开始日期和结束日期

扎克

我需要获取开始日期和结束日期。请帮帮我我有这样一张桌子:

| login| date_start| date_end  |
|user1 | 2022-01-01| 2022-01-01|
|user1 | 2022-01-02| 2022-01-02|
|user1 | 2022-01-03| 2022-01-03|
|user2 | 2022-01-05| 2022-01-05|
|user2 | 2022-01-06| 2022-01-06|
|user1 | 2022-02-24| 2022-02-24|
|user1 | 2022-02-25| 2022-02-25|
|user1 | 2022-02-26| 2022-02-26|

预期结果:

user1 2022-01-01 - 2022-01-03
user2 2022-01-05 - 2022-01-06
user1 2022-02-24 - 2022-02-26
蒂姆·比格森

这是一个空白和孤岛问题。一种方法使用行号差异方法:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (ORDER BY date_start) rn1,
              ROW_NUMBER() OVER (PARTITION BY login ORDER BY date_start) rn2
    FROM yourTable
)

SELECT login, MIN(date_start) AS date_start, MAX(date_end) AS date_end
FROM cte
GROUP BY login, rn1 - rn2
ORDER BY MIN(date_start);

这是一个工作演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取开始日期和结束日期之间的月数

从时间戳范围获取开始日期和结束日期

从 firebird 2.5 中的周数获取开始和结束日期

从单列数据获取开始和结束日期

从日期时间戳记获取开始和结束时间

如何获取开始日期和结束日期之间的每周日期

获取开始日期和结束日期熊猫列之间的所有日期

快速从数组中获取开始日期和结束日期之间的日期

获取开始日期和结束日期之间的日期数组

查询以从仅具有开始日期的表中获取开始和结束日期

在ExtJS中获取开始/结束日期之间的日期

获取开始日期和结束日期python之间的列表元素

如何从Google脚本中的星期数获取开始日期和结束日期

如何从值中获取开始日期时间戳和结束日期时间戳

Oracle查询按连续值分组并获取开始日期和结束日期

如何在MongoDB中获取开始日期和结束日期之间的数据

如何从DHTMLX Gantt图表获取开始绘制日期和结束绘制日期

如何通过在 SQL Server 中选择周数来获取开始日期和结束日期

如何在材料日期范围选择器中获取开始日期和结束日期之间的日期

从表格中获取开始日期和结束日期,并按ID和状态类型对日期进行分组

如何在mysql中使用星期数获取开始和结束星期的日期?

如何从MYSQL中的日期列表中获取开始年份和结束年份

Sequelize 查询获取开始和结束日期之间的所有数据

如何在php中知道年号和月号时如何获取开始日期和结束日期

从 IsoWeek 获取开始日期

如何在sql oracle中获取开始日期和结束日期之间的所有年份

如果输入日期不可用,如何在oracle中获取开始日期和结束日期之间的输入日期,然后返回最大日期记录

获取开始日期到结束日期之间的日期(以php月为单位)

SQL 查询从标记为“D”的任务中获取开始和结束日期(如果存在),否则为最小开始和结束日期