hive null值排序

create table zgc_0903_test
(
    name          string,
    money         string,
    update_time   string
);
insert into table zgc_0903_test values
('AAA','200','2020-01-01 12:00:00')
,('AAA','260','2020-02-01 12:00:00')
,('BBB','100','2020-01-01 12:00:00')
,('BBB',NULL,'2020-02-01 12:00:00')
,('BBB',NULL,NULL)
,('CCC','300',NULL)
,('CCC','400',NULL)
,('DDD','100',NULL)
,('DDD','250','2020-02-01 12:00:00')
,(NULL,'260','2020-02-01 12:00:00')
,(NULL,'100','2020-01-01 12:00:00');

排正序
查询:

select *,row_number()over(partition by name order by update_time) rn from zgc_0903_test;
+---------------------+----------------------+----------------------------+-----+
| zgc_0903_test.name  | zgc_0903_test.money  | zgc_0903_test.update_time  | rn  |
+---------------------+----------------------+----------------------------+-----+
| NULL                | 100                  | 2020-01-01 12:00:00        | 1   |
| NULL                | 260                  | 2020-02-01 12:00:00        | 2   |
| AAA                 | 200                  | 2020-01-01 12:00:00        | 1   |
| AAA                 | 260                  | 2020-02-01 12:00:00        | 2   |
| BBB                 | NULL                 | NULL                       | 1   |
| BBB                 | 100                  | 2020-01-01 12:00:00        | 2   |
| BBB                 | NULL                 | 2020-02-01 12:00:00        | 3   |
| CCC                 | 400                  | NULL                       | 1   |
| CCC                 | 300                  | NULL                       | 2   |
| DDD                 | 100                  | NULL                       | 1   |
| DDD                 | 250                  | 2020-02-01 12:00:00        | 2   |
+---------------------+----------------------+----------------------------+-----+

排倒序
查询:

select *,row_number()over(partition by name order by update_time desc) rn from zgc_0903_test;
+---------------------+----------------------+----------------------------+-----+
| zgc_0903_test.name  | zgc_0903_test.money  | zgc_0903_test.update_time  | rn  |
+---------------------+----------------------+----------------------------+-----+
| NULL                | 260                  | 2020-02-01 12:00:00        | 1   |
| NULL                | 100                  | 2020-01-01 12:00:00        | 2   |
| AAA                 | 260                  | 2020-02-01 12:00:00        | 1   |
| AAA                 | 200                  | 2020-01-01 12:00:00        | 2   |
| BBB                 | NULL                 | 2020-02-01 12:00:00        | 1   |
| BBB                 | 100                  | 2020-01-01 12:00:00        | 2   |
| BBB                 | NULL                 | NULL                       | 3   |
| CCC                 | 400                  | NULL                       | 1   |
| CCC                 | 300                  | NULL                       | 2   |
| DDD                 | 250                  | 2020-02-01 12:00:00        | 1   |
| DDD                 | 100                  | NULL                       | 2   |
+---------------------+----------------------+----------------------------+-----+

结论:
排正序时,null值会被排在最前面
排倒序时,null值会被排在最后面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值