hive 编写sql语句实现每班前三名,分数一样并列,同时求出前三名 按名次排序的一次的分差

1.4 编写sql语句实现每班前三名,分数一样并列,同时求出前三名
按名次排序的一次的分差

Stu_no class score
1 1901 90
2 1901 90
3 1901 83
4 1901 60
5 1902 66
6 1902 23
7 1902 99
8 1902 67
9 1902 87

create table if not exists stu(
stu_no string,
class string,
score int
)
row format delimited fields terminated by ' '
lines terminated by '\n'
stored as textfile
;

load data local inpath '/root/hivedata/stu.txt' into table stu;

select
class,
stu_no,
score,
num,
score-nvl(lag(score) over(distribute by class sort by num),0)
from
(select
stu_no,
class,
score,
rank() over(distribute by class sort by score desc) num
from stu) t1
where t1.num<4
;


在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在零售数据找出每个城市消费能力排名前两名顾客是通过Hive进行以下步骤实现的: 1. 创建Hive数据:首先,在Hive创建一个与零售数据集对应的,包含有关顾客、城市和消费能力的字段。将数据集导入到该。 2. 城市消费能力计算:使用Hive查询语句,对于每个城市,计算顾客的消费总额。通过使用GROUP BY子句和SUM聚合函数,将顾客按城市分组并计算其消费总额。将结果存储到一个临时。 3. 按城市消费能力排序:使用Hive查询语句,在临时按城市消费总额进行降序排列。使用ORDER BY子句将城市按消费总额进行排序,并将结果存储到另一个临时。 4. 提取前两名顾客:使用Hive查询语句,从排名提取每个城市消费能力排名前两名的顾客。通过使用LAG()窗口函数,将排名与顾客信息关联,然后使用WHERE子句选择排名小于等于2的顾客,得到每个城市的前两名顾客的信息。 5. 输出结果:通过使用SELECT语句,将每个城市消费能力排名前两名顾客的信息从Hive提取出来。可以选择将结果输出到屏幕,保存到文件或者导入到其他分析工具进行进一步分析。 通过以上步骤,可以使用Hive对零售数据进行处理,找出每个城市消费能力排名前两名顾客的信息,并进一步分析这些顾客的消费行为以及对业务发展的影响。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值