查找连续行的子集的最小值和最大值

问题描述 投票:-1回答:1

下面是桌子

CID,PID,CHECK_IN,Check_out
1,p1,2020-01-01,2020-01-09
1,p1,2020-01-09,2020-01-16
1,p1,2020-01-16,2020-01-18
1,p1,2020-02-01,2020-02-09----overlapping with below ro
1,p1,2020-02-06,2020-02-18----overlapping with above ro
1,p1,2020-02-20,2020-02-21
1,p1,2020-02-23,2020-02-26

问题:1.识别同一属性上的连续预订,并使用min(checkIn)和max(checkOut)将其排成一行,并使其标志= 1

  1. 确定同一属性上的重叠连续预订,并用min(checkIn)和max(checkOut)使其一行,并使其标志= 2

  2. 如果同一属性中没有连续预订,则保留该行不变,并放置标志= 3

  3. 如果在不同的属性中没有连续的预订,则保留该行并放置标记= 4

  4. 如果在不同的属性中有连续的预订,则保留该行不变,并放置flag = 5

    ] >>
  5. 预期结果

CID,PID,CHECK_IN,Check_out,FLAG
1,P1,2020-01-01,2020-01-18,1
1,P1,2020-02-01,2020-02-18,2
1,P1,2020-02-20,2020-02-21,3
1,P1,2020-02-23,2020-02-26,3

下面是表格CID,PID,CHECK_IN,Check_out 1,p1,2020-01-01,2020-01-09 1,p1,2020-01-09,2020-01-16 1,p1,2020-01 -16,2020-01-18 1,p1,2020-02-01,2020-02-09 ----与ro 1,p1,2020-02-06以下重叠,...

sql apache-spark hive apache-spark-sql pyspark-sql
1个回答
0
投票

这主要是一个缺口和孤岛的问题-连接行。

© www.soinside.com 2019 - 2024. All rights reserved.