hive常见习题解析

hive常见习题解析

  1. 已有shop_id,item_id,num三列, 使用HiveSQL计算得到a,b列(温馨提示: 按照shop_id分组, a为num值/每组num的和, b为a的组内排序)
    在这里插入图片描述
    解析:
    建表
create table shops(
shop_id char(1),
item_id char(1), 
num int
);

插入数据

Insert into shops values
("A","a",10),
("A","b",12),
("B","a",8),
("A","c",5),
("B","c",8),
("C","b",9);

查询:

select shop_id,item_id,num,
num/sum(num) over (distribute by shop_id) a,
rank() over (distribute by shop_id sort by num desc)b
from shops;
  1. 使用hive计算num列的sum值
    在这里插入图片描述
    解析: 需结合侧视图使用行转列函数explode
    建表
create table test2(
item char(1),
num int
stored textfile;

插入数据

insert into valuse
("A",1,2,3,4),
("B",2,5,1);

查询:

select item,num,sum(tmp.c) sum from test2
lateral view explode(split(num,",")) tmp as c
group by item,num;

猜你喜欢

转载自blog.csdn.net/and52696686/article/details/107642628