sql - 根据 Hive 中的组类别移动日期列的行
问题描述
我有这些带有位置和日期的列。我想使用 Hive HQL 在每个位置而不是整个列中向下移动日期列。我试过使用LAG()
,但它不支持 Hive,datediff()
而且它没有给我带来移动日期,只有日期差异。
Location Dates
0000076-0 01/01/2020
0000076-0 28/01/2020
0000076-0 28/02/2020
0000076-0 01/04/2020
0000076-0 28/04/2020
0000076-0 28/05/2020
0000076-0 01/07/2020
000478-2 01/01/2020
000478-2 01/02/2020
000478-2 26/02/2020
000478-2 01/04/2020
000478-2 26/04/2020
000478-2 26/05/2020
000478-2 01/07/2020
0005655-3 01/01/2020
0005655-3 07/02/2020
0005655-3 09/03/2020
0005655-3 07/04/2020
0005655-3 07/05/2020
0005655-3 08/06/2020
0005655-3 01/07/2020
0010828-6 01/01/2020
0010828-6 31/01/2020
0010828-6 29/02/2020
0010828-6 01/04/2020
0010828-6 01/05/2020
期望的输出
Location Dates Dates_shifted_down_per_location
0000076-0 01/01/2020 null
0000076-0 28/01/2020 01/01/2020
0000076-0 28/02/2020 28/01/2020
0000076-0 01/04/2020 28/02/2020
0000076-0 28/04/2020 01/04/2020
0000076-0 28/05/2020 28/04/2020
0000076-0 01/07/2020 28/05/2020
000478-2 01/01/2020 null
000478-2 01/02/2020 01/01/2020
000478-2 26/02/2020 01/02/2020
000478-2 01/04/2020 26/02/2020
000478-2 26/04/2020 01/04/2020
000478-2 26/05/2020 26/04/2020
000478-2 01/07/2020 26/05/2020
0005655-3 01/01/2020 null
0005655-3 07/02/2020 01/01/2020
0005655-3 09/03/2020 07/02/2020
0005655-3 07/04/2020 09/03/2020
0005655-3 07/05/2020 07/04/2020
0005655-3 08/06/2020 07/05/2020
0005655-3 01/07/2020 08/06/2020
0010828-6 01/01/2020 null
0010828-6 31/01/2020 01/01/2020
0010828-6 29/02/2020 31/01/2020
0010828-6 01/05/2020 29/02/2020
0010828-6 01/06/2020 01/05/2020
解决方案
Hive 支持lag()
. 你想要的代码是:
select t.*,
lag(date) over (partition by location order by date) as prev_date
from t;
推荐阅读
- xml - 使用 Bash 从 XML 属性中获取注释标记
- spring - How to connect with headless Mongo Service in kubernetes
- c - printf("请输入'a':"); 第一次循环后运行 2 次
- xamarin.forms - Azure AD B2C Xamarin Forms - 成功登录后再次执行 OnAppearing 方法
- jquery - 如何为 Angular 绑定 $compile jQuery sortable drop?
- sql - PostgreSQL Order By 无法正常工作
- asp.net-mvc - 作为另一个动作的结果返回动作?
- java - 如何在 Controller/JSP 页面中使用 BackOffice 中的图像
- git - 配置 webhook 文件推送到 bitbucket 后不触发 jenkins 作业
- c# - 如何在 asp.net 中使用 301 重定向