查找每一行的日期范围。LEAD / LAG,但具有不同的类型/动作

StatsTrainer

我有一个包含以下数据的表:

Action   Code    Place        Date
Remove   A       Place 1      2019-03-15
Install  A       Place 2      2019-10-01
Remove   A       Place 2      2022-07-12
Install  A       Place 3      2023-01-01

有两种可能的动作。“删除”和“安装”。如何找到给定日期的代码A场所?例如,2015年将是地方1。2020年将是地方2。2025年将是地方3。

我认为第一步也是最困难的一步,就是将其转换为包含开始日期和结束日期的表。然后,我可以使用之间的功能。

输出示例:

A   Place   StartDate   EndDate
A   Place 1 1900-01-01  2019-03-15 -- we dont have start date so we can use for ex. 1900
A   Place 2 2019-10-01  2022-07-12
A   Place 3 2023-01-01  3000-01-01 -- we dont have end date so we can use for ex. 3000

我曾尝试过LEAD / LAG,但是我们在这里有两种不同的操作,因此我认为这不是最好的主意。我该如何解决这个问题?

谢谢。

戈登·利诺夫

我明白。以下用于union all确保它获取所有值。

select code, place, '1900-01-01' as startdate, date as enddate
from (select t.*, row_number() over (partition by code order by date) as seqnum
      from t
     ) t
where seqnum = 1 and action = 'Remove'
union all
select code, place, date as startdate, enddate
from (select t.*,
             lead(date, 1, '3000-01-01') over (partition by code order by date) as enddate
      from t
     ) t
where action = 'Install';

第一个子查询处理数据以开头的情况'Remove'第二个记录将全部'installs'记录下来,并将日期设置为下一个记录。

请注意,即使位置在数据中交错,这也将起作用(因此,代码会在一段时间后返回到位置)。

是db <>小提琴。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用范围的不同随机日期时间更新每一行

来自分类Dev

对于每一行,查找列中具有相同值的所有行

来自分类Dev

熊猫将不同类型的多行转换为每一行具有多列的1行

来自分类常见问题

查找具有每一行最大值的列名

来自分类Dev

查找逻辑矩阵的每一行是否至少有一个TRUE

来自分类Dev

查找逻辑矩阵的每一行是否至少有一个TRUE

来自分类Dev

在满足另一个条件的每一行之后查找具有条件的第一行

来自分类Dev

将 repmat 应用于具有不同输入的 Matlab 中矩阵的每一行

来自分类Dev

如何为具有不同颜色的每一行绘制特定 DataFrame 的切片?

来自分类Dev

如何在具有响应的每一行的编辑/删除按钮的AG网格中添加动作列?

来自分类Dev

我的代码没有遍历每一行,而是在我的范围内打印顶行

来自分类Dev

具有LEAD / LAG功能的行到列

来自分类Dev

当python的一行中有多个最大值时,在2-dim向量的每一行中查找最大值

来自分类Dev

按日期订购具有不同内容类型的Contentful

来自分类Dev

将具有不同日期/变量的多行合并为一行

来自分类Dev

减去熊猫中具有不同列类型的行

来自分类Dev

减去熊猫中具有不同列类型的行

来自分类Dev

Cassandra长行具有不同的数据类型

来自分类Dev

在R中找到具有相同扩展名的不同数据的每一行的最大值

来自分类Dev

查找具有给定值的上一行

来自分类Dev

R:基于所有行的每一行的条件

来自分类Dev

如何对每一行的所有行求和

来自分类Dev

如何在没有子查询的情况下获得与最近日期行最接近的每一行日期字段的TIMEDIFF?

来自分类Dev

为UITableView的每一行推送不同的UIView

来自分类Dev

从矩阵获取每一行的不同列

来自分类Dev

在大表的每一行上插入不同的UUID

来自分类Dev

numpy:矩阵中每一行的不同子集的均值

来自分类Dev

数据库不同div中的每一行

来自分类Dev

每一行都无法回声不同

Related 相关文章

  1. 1

    使用范围的不同随机日期时间更新每一行

  2. 2

    对于每一行,查找列中具有相同值的所有行

  3. 3

    熊猫将不同类型的多行转换为每一行具有多列的1行

  4. 4

    查找具有每一行最大值的列名

  5. 5

    查找逻辑矩阵的每一行是否至少有一个TRUE

  6. 6

    查找逻辑矩阵的每一行是否至少有一个TRUE

  7. 7

    在满足另一个条件的每一行之后查找具有条件的第一行

  8. 8

    将 repmat 应用于具有不同输入的 Matlab 中矩阵的每一行

  9. 9

    如何为具有不同颜色的每一行绘制特定 DataFrame 的切片?

  10. 10

    如何在具有响应的每一行的编辑/删除按钮的AG网格中添加动作列?

  11. 11

    我的代码没有遍历每一行,而是在我的范围内打印顶行

  12. 12

    具有LEAD / LAG功能的行到列

  13. 13

    当python的一行中有多个最大值时,在2-dim向量的每一行中查找最大值

  14. 14

    按日期订购具有不同内容类型的Contentful

  15. 15

    将具有不同日期/变量的多行合并为一行

  16. 16

    减去熊猫中具有不同列类型的行

  17. 17

    减去熊猫中具有不同列类型的行

  18. 18

    Cassandra长行具有不同的数据类型

  19. 19

    在R中找到具有相同扩展名的不同数据的每一行的最大值

  20. 20

    查找具有给定值的上一行

  21. 21

    R:基于所有行的每一行的条件

  22. 22

    如何对每一行的所有行求和

  23. 23

    如何在没有子查询的情况下获得与最近日期行最接近的每一行日期字段的TIMEDIFF?

  24. 24

    为UITableView的每一行推送不同的UIView

  25. 25

    从矩阵获取每一行的不同列

  26. 26

    在大表的每一行上插入不同的UUID

  27. 27

    numpy:矩阵中每一行的不同子集的均值

  28. 28

    数据库不同div中的每一行

  29. 29

    每一行都无法回声不同

热门标签

归档