如何将表A中的日期与表B中的日期范围进行匹配,以及如何从表B中获取相应的数据-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何将表A中的日期与表B中的日期范围进行匹配,以及如何从表B中获取相应的数据

2020-01-05 14:44:35 299 1

表A

**ID      empID       log_date_time**
1        1234        2019-10-06 01:00  
2        1234        2019-10-07 03:00
表B

**empID          start_date_time     end_date_time**
1234           2019-10-06 22:00    2019-10-07 02:00

预期产量

表C

**ID      empID       log_date_time         within_range_flag**
1        1234        2019-10-06 01:00            1
2        1234        2019-10-07 03:00            0

表A中有大约10,000,000条记录,表B中有15,000条记录。我尝试了联接,但是似乎要花很长时间才能处理。

任何想法如何将表A的日期时间与表B的日期时间范围匹配?

谢谢。

---编辑我还需要输入表B的信息以供参考。所以预期的输出是

表C

**ID      empID       log_date_time         within_range_flag         start_date_time     end_date_time**
1        1234        2019-10-06 01:00            1                  2019-10-06 22:00    2019-10-07 02:00
2        1234        2019-10-07 03:00            0
取消 提交回答
全部回答(1)
  • 祖安文状元
    2020-01-05 14:44:46

    尝试这个:

    select
        ID, empID, log_date_time,
        case when start_date_time is null then 0 else 1 end within_range_flag, start_date_time
    from (
      select a.ID, a.empID, log_date_time, min(start_date_time) start_date_time
      from tableA a
      left join tableB b on b.empID = a.empID
        and a.log_date_time between b.start_date_time and b.end_date_time
      group by a.ID, a.empID, log_date_time
    ) x
    
    

    这是通过使用聚集将所有连接的tableB行折叠为一个值来最早获得的start_date_time。如果没有任何跳转行,start_date_time则null可以使用该事实来产生标志值。

    假设您要使用start_date_timetableB中所有匹配行中最早的一个。如果需要最新版本,请使用max()。如果您想要不同的东西,请不要使用此查询。

    您应该在创建索引tableB(empId, start_date_time, end_date_time)。

    0 0
相关问答

1

回答

请问下ECS调用函数计算走的是内网么

2022-07-17 09:50:12 263浏览量 回答数 1

10

回答

ES数据量达到PB级别以后性能急剧下降怎么办?

2022-02-17 22:22:07 15801浏览量 回答数 10

1

回答

大数据处理平台数数据分析与计算组件有什么作用?

2022-01-13 17:39:00 272浏览量 回答数 1

1

回答

数据仓库中的规范设计具体是什么意思呢?

2021-12-12 15:49:26 118浏览量 回答数 1

1

回答

数据仓库中的开发规范具体是什么意思啊?

2021-12-12 15:58:28 205浏览量 回答数 1

1

回答

数据仓库当中的第二范式具体是什么意思?

2021-12-12 17:15:02 317浏览量 回答数 1

1

回答

云数据仓库Serverless中处理大数据场景的函数计算的步骤是什么?

2021-12-10 15:18:38 440浏览量 回答数 1

1

回答

阿里数据标注供应商如何申请?以及领取标注项目

2021-03-19 21:15:11 865浏览量 回答数 1

1

回答

js中获取的数据如何进行操作

2016-03-12 17:26:20 1757浏览量 回答数 1

4

回答

购买经济型B服务器,请大家帮忙推荐下数据库。。。

2012-08-16 16:23:16 6291浏览量 回答数 4
0
文章
1898
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载