Hive last_value/first_value实现ignore nulls

本文介绍如何创建测试表并使用SQL查询,包括使用`last_value`函数按ID和时间顺序获取最新值,展示在默认test_tab表中的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一张测试表

drop table if exists default.test_tab purge;
create table default.test_tab
as
select date_add(current_timestamp(),-10) as event_time,'1' as id, 'A' as a,'B' as b,'C' as c
union all select date_add(current_timestamp(),-9) as event_time,'1' as id, 'a' as a, null as b,null as c
union all select date_add(current_timestamp(),-8) as event_time,'1' as id,null as a, 'b' as b,null as c
union all select date_add(current_timestamp(),-7) as event_time,'1' as id,null as a, null as b,'c' as c
union all select date_add(current_timestamp(),-6) as event_time,'2' as id,'AA' as a, null as b,null as c
union all select date_add(current_timestamp(),-5) as event_time,'2' as id,null as a, 'BB' as b,null as c
union all select date_add(current_timestamp(),-4) as event_time,'2' as id,null as a, null as b,'CC' as c
union all select date_add(current_timestamp(),-3) as event_time,'2' as id,'a' as a, 'b' as b,'c' as c;

测试

select t.*, 
    last_value(a) over( partition by id order by event_time) as last_a, 
    last_value(b,TRUE) over( partition by id order by event_time ) as last_b 
from default.test_tab t

结果

在这里插入图片描述

Hive的保留关键字包括:ADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,BEFORE,BETWEEN,BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,BY,CASCADE,CASE,CAST,CHANGE,CLUSTER,CLUSTERED,CLUSTERSTATUS,COLLECTION,COLUMN,COLUMNS,COMMENT,COMPACT,COMPACTIONS,COMPUTE,CONCATENATE,CONF,CONTINUE,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIMESTAMP,DATA,DATABASE,DATABASES,DATE,DATETIME,DAY,DBPROPERTIES,DECIMAL,DEFERRED,DEFINED,DELIMITED,DEPENDENCY,DESC,DESCRIBE,DFS,DIRECTORIES,DIRECTORY,DISABLE,DISTRIBUTE,DIV,DROP,ELSE,ENABLE,END,ESCAPED,EXCLUSIVE,EXISTS,EXPLAIN,EXPORT,EXTENDED,EXTERNAL,FAILED,FALSE,FETCH,FIELDS,FILE,FILEFORMAT,FIRST,FOLLOWING,FOR,FROM,FULL,FUNC,FUNCTION,GE,GENERATE,GET,GLOBAL,GRANT,GROUP,GROUPING,HAVING,HOLD_DDLTIME,HOUR,IDX,IF,IGNORE,IMPORT,IN,INCLUDE,INDEX,INDEXES,INNER,INPATH,INPUTDRIVER,INPUTFORMAT,INSERT,INTERSECT,INT,BIGINTO,BIGINTO,BIGINTO,BIGINTO,BIGINTO,BIGINTO,BIGINTO,BIGINTO,IOSFORMATTED,IOWRITE,KAFKA,KEYS,KILL,LARGE,LAST,LEFT,LIMIT,LINES,LIST,LOCATION,LOCK,LOCKS,LOGICAL,MAP,MAPJOIN,MAPRED,MASTER,MATCHED,MATERIALIZE,MERGE,MINUS,MINUTE,MONTH,MSCK,NATIVE,NATURAL,NO,NOT,NULL,NULLS,OF,OFFLINE,OFFSET,OLD,ON,ONLY,OPEN,OR,ORDER,OUT,OUTER,OUTPUTDRIVER,OUTPUTFORMAT,OVER,OVERWRITE,OWNER,PARTIALSCAN,PARTITION,PARTITIONED,PARTITIONS,PERCENT,PLUS,PRECEDING,PRECISION,PRESERVE,PRETTY,PRINT,PROCEDURE,PROTOSHUFFLE,PUBLIC,RAWREAD,RAWWRITE,RCFILE,READ,READONLY,READS,REBUILD,RECORDREADERCLASS,RECORDREPLACEMENTCHARACTER,RECORDWRITERCLASS,REDUCE,REGEXP,RELOAD,RENAME,REPAIR,REPLACE,REPLICATION,RESTRICT,RESUME,RETURN,RETURNS,REVOKE,RIGHT,RLIKE,ROLE,ROLES,ROLLBACK,ROLLUP,ROW,ROWS,SCHEMA,SELECT,SEQUENCEFILE,SEPARATOR,SERDE,SERDEPROPERTIES,SET,SHARED,SHOW,SHUTDOWN,SKIP,SMALLINT,SORT,SORTED,START,STATS,STATUS,STRAIGHT_JOIN,STRING,STRUCT,TABLE,TABLES,TABLESAMPLE,TBLPROPERTIES,TEMPORARY,TERMINATED,THEN,TIME,TIMESTAMP,TINYINT,TO,TOUCH,TRAILING,TRANSACTION,TTL,TUPLE,TYPE,TYPES,UNARCHIVE,UNBOUNDED,UNCACHE,UNION,UNIQUE,UNLOCK,UNSET,UNSIGNED,UPDATE,URI,USE,USER,USING,UTC,UTCTIMESTAMP,VALUE,VALUED,VALUES,VARCHAR,VIEWS,WHEN,WHERE,WHILE,WINDOW,WITH,WORK,WRITE,YEAR.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值