Hive SQL进阶案例(一):使用LAG函数判断日期连续性

一、LAG函数介绍

LAG函数是一个常用的窗口函数,作用是取当前行之后的数据,即把该列数据向上错位。使用方法如下:

LAG(col ,n ,Default)

  • col是字段名称,指明要操作的列,必须指定该参数;

  • n表示取当前行的后n行的col列数据,可以不指定默认为1;

  • Default 表示前n行没有数据时的默认值,可以不指定默认为NULL.


二、案例表及测试数据准备

首先创建该案例的表结构、插入测试数据。

-- project表为项目表
CREATE TABLE project(
    proj_number varchar(20)  -- 项目编号
    ,name varchar(20)        -- 项目名称
    ,start_date date         -- 项目启动日期
    ,total_cost varchar(12)  -- 项目总成本:项目未完成则置NULL
    ,dept_code varchar(20)   -- 项目负责部门编号
    ,client_id varchar(20)   -- 客户编号
    ,code varchar(20)        -- 项目编码
 );
-- assignment表存储员工在项目的工作情况
CREATE TABLE assignment(
    assign_num varchar(20)   -- 作业编号
    ,proj_number varchar(20) -- 项目编号
    ,emp_num varchar(20)     -- 员工编号
    ,date_assigned date      -- 本月开始作业日期
    ,date_ended date         -- 本月结束作业日期
    ,hours_used varchar(10)  -- 当月工时【当月作业没有结束则存NULL】
  );
 -- 插入测试数据
INSERT INTO project 
VALUES (7001, 'Apollo',    '2020-12-17', '$10,000.90', 1, 2001, 9001)
,(7002, 'Astro',     '2021-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值