hive学习04-员工部门表综合案例
知识点:
格式转换:cast(xxx as int)
按某列分桶某列排序,排序后打标机;例如:求每个地区工资最高的那个人的信息;
ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
row_number() over(distribute by t1.loc sort by cast(t1.sal as int) desc) as index
dept表
hive> select * from dept;
# deptno(部门编号) dname(部门名称) loc(部门所在地区)
ACCOUNTING NEW YORK
RESEARCH DALLAS
SALES CHICAGO
OPERATIONS BOSTON
ump表
hive> select * from ump; # 员工编号 员工姓名 职务 领导编号 入职日期 工资 奖金 部门编号
# empno ename job mgr hiredate sal comm deptno
SMITH CLERK -- 800.0 0.0
ALLEN SALESMAN -- 1600.0 300.0
WARD SALESMAN -- 1250.0 500.0
JONES MANAGER -- 2975.0 0.0
MARTIN SALESMAN -- 1250.0 1400.0
BLAKE MANAGER -- 2850.0 0.0
CLARK MANAGER -- 2450.0 0.0
SCOTT ANALYST -- 3000.0 0.0
KING PRESIDENT NULL -- 5000.0 0.0
TURNER SALESMAN -- 1500.0 0.0
ADAMS CLERK -- 1100.0 0.0
JAMES CLERK -- 950.0 0.0
FORD ANALYST -- 3000.0 0.0
MILLER CLERK -- 1300.0 0.0 10
(1) 查询总员工数
select count(empno) from ump; #Total MapReduce CPU Time Spent: seconds msec
#OK
#
(2) 查询总共有多少种职位
select count(distinct job) from ump;
#Total MapReduce CPU Time Spent: seconds msec
#OK
#
(3) 统计每个职位有多少个员工,并且按照数量从大到小排序
select job ,count (*)as emp_cnt
from ump
group by job
order by emp_cnt desc; SALESMAN
CLERK
MANAGER
ANALYST
PRESIDENT
(4) 查询入职最早的员工
select ump.ename,ump.hiredate
from ump
join
(select min(hiredate) as hiredate from ump)t1
where ump.hiredate=t1.hiredate; #SMITH --
(5) 统计出每个岗位的最高工资和平均工资
select job ,max(sal)as max_sale,avg(sal)as min_sale
from ump
group by job;
ANALYST 3000.0 3000.0
CLERK 950.0 1037.5
MANAGER 2975.0 2758.3333333333335
PRESIDENT 5000.0 5000.0
SALESMAN 1600.0 1400.0
(6) 查询出每个地区工资最高的员工
select t2.loc,t2.ename,t2.sal
from
(select t1.loc,t1.ename,t1.sal,
row_number() over(distribute by t1.loc sort by cast(t1.sal as int) desc) as index
from
(select dept.loc,ump.ename,ump.sal from
dept join ump
on dept.deptno=ump.deptno)t1
)t2
where t2.index=; #CHICAGO BLAKE 2850.0
#DALLAS FORD 3000.0
#NEW KING 5000.0
(7) 查询上半年入职员工最多的地区
select t1.loc,count(*)as cnt
from
(select dept.loc,ump.ename,
cast(substr(ump.hiredate,,) as int) as hire_month
from dept join ump
on dept.deptno=ump.deptno)t1
where t1.hire_month<=
group by t1.loc
order by cnt desc
limit ; CHICAGO
hive学习04-员工部门表综合案例的更多相关文章
- Mysql 设计超市经营管理系统,包括员工信息表(employee)和 员工部门表(department)
互联网技术学院周测机试题(二) 一.需求分析 为进一步完善连锁超市经营管理,提高管理效率,减少管理成本,决定开发一套商品管理系统,用于日常的管理.本系统分为商品管理.员工管理.店铺管理,库存管理等功能 ...
- 员工部门表综合查询SQL
--数据库的表设计如下: --部门:部门编号,部门名称,地址: --员工:员工编号,员工名字,职务,管理编号,入职日期,薪资,奖金,部门编号: --创建部门表: CREATE TABLE dept( ...
- 【Hbase学习之四】Hbase表设计案例
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-2.6.5 hbase-0.98.12.1-h ...
- Hive案例05-学生成绩表综合案例
1. 数据说明 (1) student表 hive> select * from student; # 学生ID 学生姓名 性别 年龄 所在系 # sid sname sex age dept ...
- hive学习笔记_hive的表创建
创建hive表注意事项 一.表分隔符必须与读取的数据文件一致,比如例子的分隔符为 '\t'(制表符),hive下默认分隔符是制表符. 二.最好指定分区作为数据之间的区分. 三.创建完表可以desc+表 ...
- hive学习5(复制表结构)
hive复制表结构 CREATE TABLE new_table LIKE old_table; 例:创建一个和stg_job表一样表结构的s_job表 create table s_job like ...
- Linux学习笔记——例说makefile 综合案例
0.前言 从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile,假设自己动手写一个makefile总认为非常吃力.所以特意借 ...
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
- 数据仓库009 - SQL命令实战 - where GROUP BY join 部门综合案例
一.where条件 WHERE 子句中主要的运算符,可以在 WHERE 子句中使用,如下表: 运算符 描述 = 等于 <> 不等于.注释:在 SQL 的一些版本中,该操作符可被写成 != ...
随机推荐
- None.js 第四步 事件驱动程序
Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件 // 导入events模块 var events = require ...
- 十七、文件和目录——minishell(1)
主函数运行要去读取从标准输入或终端上输入的整个命令行,然后再去解析命令行参数,解析出来之后,要将其封装成一个 program,然后再将 program 放入 job 中,然后再去执行 job 中的命令 ...
- [译]ES6特性
原文 作用域 使用let/const替代var. var有什么错? var说明的变量会产生作用于提升的概念. ES5: var x = 'outer'; function test(inner) { ...
- Git学习之忽略特殊文件.gitignore的配置
1.Mac中使用Git上传项目代码时忽略.DS_Store文件 简单的说Mac每个目录都会有个文件叫.DS_Store,它是用于存储当前文件夹的一些Meta信息.所以每次查看Git目录的状态,如果没有 ...
- python笔记---数据基础类型
s = 'laonanHai' s1 = s.capitalize() #首字母大写,其他字母小写 s2 = s.upper() #全部大写 s3 = s.lower() #全部小写 print(s, ...
- if 语句
if 判断条件的时候,如果是多个条件一起进行判断,那么就需要逻辑运算符 并且-----------and 或者-----------or 非(取反)----not if 条件1 and 条件2 ...
- ES学习
官方参考手册 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html https://www.elastic.co ...
- Django REST framework 第五章 Relationships & Hyperlinked APIs
到目前为止,API内部的关系是使用主键来代表的.在这篇教程中,我们将提高API的凝聚力和可发现性,通过在相互关系上使用超链接. Creating an endpoint for the root of ...
- mysql 无法链接, 输入密码失败
今天,在外面上网,使用的是公网(好像不安全,我也不懂),然后连接数据库,出现下面错误,我明明输入正确的密码还是失败了. 然后我在网上查方式, 应该是没有设置开机启动,输入了: mysqld --con ...
- P1880 [NOI1995]石子合并(区间DP)
题目链接:https://www.luogu.org/problemnew/show/P1880 题目大意:中文题目 具体思路:和上一篇的思路是差不多的,也是对于每一个小的区间进行处理,然后再归并到大 ...