1、sql案例

#创建表语句
create table employee
(
empid int,
deptid int,
sex string,
salary double
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’;

#准备数据
1,10,female,5500.0
2,10,male,4500.0
3,20,female,1900.0
4,20,male,4800.0
5,40,female,6500.0
6,40,female,14500.0
7,40,male,44500.0
8,50,male,6500.0
9,50,male,500.0

#加载数据
load data local inpath ‘/root/data/employee.txt’ into table employee;

#表结构

desc employee;

empid int
deptid int
sex string
salary double
#表记录
select * from employee;
1 10 female 5500.0
2 10 male 4500.0
3 20 female 1900.0
4 20 male 4800.0
5 40 female 6500.0
6 40 female 14500.0
7 40 male 44500.0
8 50 male 6500.0
9 50 male 7500.0

########### 将员工按照薪资待遇划分等级

(小于5000为低等收入,5000-10000为中等收入,10000以上为高等收入)

########### 将员工按照性别打上标识

female为1, male为0

select *,
case
when salary < 5000 then “低等收入”
when salary>= 5000 and salary < 10000 then “中等收入”
when salary > 10000 then “高等收入”
end as level,
case sex
when “female” then 1
when “male” then 0
end as flag
from employee;
#统计结果
1 10 female 5500.0 中等收入 1
2 10 male 4500.0 低等收入 0
3 20 female 1900.0 低等收入 1
4 20 male 4800.0 低等收入 0
5 40 female 6500.0 中等收入 1
6 40 female 14500.0 高等收入 1
7 40 male 44500.0 高等收入 0
8 50 male 6500.0 中等收入 0
9 50 male 7500.0 中等收入 0

############### 统计每个部门薪资最高的员工信息
select *,
row_number() over(distribute by deptid sort by salary desc ) rn
from employee;

##统计结果
1 10 female 5500.0 1
2 10 male 4500.0 2
4 20 male 4800.0 1
3 20 female 1900.0 2
7 40 male 44500.0 1
6 40 female 14500.0 2
5 40 female 6500.0 3
9 50 male 7500.0 1
8 50 male 6500.0 2

直接取出rn的编号为1的记录就是每个部门薪资最高的员工信息

select *
from
(select *,
row_number() over(distribute by deptid sort by salary desc ) rn from employee) t
where t.rn=1;
##最终结果
1 10 female 5500.0 1
4 20 male 4800.0 1
7 40 male 44500.0 1
9 50 male 7500.0 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值