hive学习04-员工部门表综合案例(代码片段)

students students     2023-02-09     477

关键词:

知识点:

格式转换: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(部门所在地区)
10                   ACCOUNTING               NEW YORK
20                   RESEARCH                 DALLAS
30                   SALES                    CHICAGO
40                   OPERATIONS               BOSTON

ump表

hive> select * from ump;

# 员工编号   员工姓名    职务        领导编号     入职日期     工资    奖金    部门编号    
# empno     ename       job         mgr         hiredate    sal    comm    deptno
  7369      SMITH       CLERK       7902        1980-12-17  800.0   0.0    20
  7499      ALLEN       SALESMAN    7698        1981-02-20  1600.0  300.0  30
  7521      WARD        SALESMAN    7698        1981-02-22  1250.0  500.0  30
  7566      JONES       MANAGER     7839        1981-04-02  2975.0  0.0    20
  7654      MARTIN      SALESMAN    7698        1981-09-28  1250.0  1400.0 30
  7698      BLAKE       MANAGER     7839        1981-05-01  2850.0  0.0    30
  7782      CLARK       MANAGER     7839        1981-06-09  2450.0  0.0    10
  7788      SCOTT       ANALYST     7566        1987-07-13  3000.0  0.0    20
  7839      KING        PRESIDENT   NULL        1981-11-07  5000.0  0.0    10
  7844      TURNER      SALESMAN    7698        1981-09-08  1500.0  0.0    30
  7876      ADAMS       CLERK       7788        1987-07-13  1100.0  0.0    20
  7900      JAMES       CLERK       7698        1981-12-03  950.0   0.0    30
  7902      FORD        ANALYST     7566        1981-12-03  3000.0  0.0    20
  7934      MILLER      CLERK       7782        1982-01-23  1300.0  0.0    10

(1) 查询总员工数

select count(empno) from ump;

#Total MapReduce CPU Time Spent: 5 seconds 170 msec
#OK
#14

(2) 查询总共有多少种职位

select count(distinct job) from  ump;
#Total MapReduce CPU Time Spent:
4 seconds 930 msec #OK #5

(3) 统计每个职位有多少个员工,并且按照数量从大到小排序

select job ,count (*)as emp_cnt
from ump
group by job
order by emp_cnt desc;


SALESMAN    4
CLERK    4
MANAGER    3
ANALYST    2
PRESIDENT    1

 

(4) 查询入职最早的员工

select ump.ename,ump.hiredate 
from ump
join
(select  min(hiredate) as hiredate from ump)t1
where ump.hiredate=t1.hiredate;

#SMITH    1980-12-17

 

(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=1;

#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,6,2) as int) as hire_month
from dept join ump 
on dept.deptno=ump.deptno)t1
where t1.hire_month<=6
group by t1.loc
order by cnt desc
limit 1;

CHICAGO    3

 







mybatis框架学习笔记(代码片段)

本篇Mybatis框架学习笔记;紧跟之前的学习Mybatis框架学习笔记(3)–>文章目录1.当出现数据库的列字段与实体类的不一致时;需要手动配置字段映射;2.两张表以上的多表映射;完成查询所有的员工(附带地查到员工对应的部门);注意有... 查看详情

mysql多表联合查询(代码片段)

阅读目录部门、员工表数据内连接innerjoin外连接outerjoin左外连接右外连接自连接联合查询交叉连接crossjoin笛卡尔积子查询标量子查询列子查询行子查询表子查询多表查询案例数据1查询员工的姓名,年龄,职位,部门... 查看详情

mysql学习笔记-多表查询(上)(代码片段)

多表查询(上)一.多表关系在实际应用中,根据需求,设计的表结构之间存在联系,联系一般分为以下三种一对多(多对一)多对多一对一1.一对多(多对一)案例:部门与员工的关系,一个部门对应多个员工,一个员工对应一个... 查看详情

mysql内外连接(代码片段)

...通过其他条件指明。显示SMITH的名字和部门名称给出一张员工表和一张部门表,员工表中的ename代表的是员工的姓名,deptno代表的是员工所在部门的部门号。如下:部门表中的dname代表的是部门名,deptno代表的是部... 查看详情

webapisbom-操作浏览器之综合案例(代码片段)

前期整理的WebAPIst内容21篇附在文章末尾案例:本地存储学习信息案例需求:改为本次存储版本的学习信息表需求:改为本次存储版本的学习信息表分析:需求①:读取本地存储数据(封装函数)如果本地存... 查看详情

打怪升级之小白的大数据之旅(七十)<hive旅程终点站:hive的综合案例>(代码片段)

打怪升级之小白的大数据之旅(七十)Hive旅程终点站:Hive的综合案例本章内容本章是Hive的最后一章,主要是通过一个案例来对我们前面所学的知识点进行一个实操总结,大家根据案例查漏补缺,哪里知识点不会就补一下... 查看详情

stl之map学习实例(代码片段)

1```2#include<iostream>3#include<algorithm>4#include<vector>5#include<map>6#include<cstring>7#include<cstdlib>8#include<ctime>9usingnamespacestd;1011#defineSALE_DEPATMENT1//销售部门12#defineDEVELOP_DEPATMENT2//研发部门13#defineFINACIAL_DEPATMENT3//... 查看详情

javaee框架技术之14ssm综合案例(代码片段)

SSM综合案例一、课程目标1.【掌握】SSM整合2.【√】学习Lombok使用3.【理解】Layui页面书写(备注:其他前端技术也可以)4.【理解】理解SSM综合案例表的结构5.【掌握】产品管理二、SSM整合Spring+SpringMVC+Mybatis–>SSMSpring+Struts2+Hiber... 查看详情

hive学习之排序(代码片段)

...orderby语句使用在select语句的结尾3、案例实操--(1)查询员工信息按工资升序排序select*fromemporderbysal;--(2)查询员工信息按工资降序排序select*fromemporderbysaldesc; 二、每个MapReduce内部排序(sortby)Sortby:对于大规模的数据集来说Orde... 查看详情

三十九表与表之间的三种关系(代码片段)

...不清晰2、浪费硬盘空间3、扩展性极差 一、一对多:员工和部门 1、如何查找表与表之间的关系以员工和部门表为例。查找表关系需要做到换位思考(站在两边去找表关系)先站在员工表:找员工表的多条数据能否对应部门表... 查看详情

350部门工资最高的员工(代码片段)

Employee表包含所有员工信息,每个员工有其对应的 Id,salary和departmentId。+----+-------+--------+--------------+|Id|Name|Salary|DepartmentId|+----+-------+--------+--------------+|1|Joe|70000|1||2 |Jim |90000 |1      ||3|Henry... 查看详情

day1学习mysql数据库作业-创建员工表思考与表之间的关系(代码片段)

day1学习MySQL数据库作业创建员工表(工号、姓名、性别、出生日期、入职日期、月薪、职位)思考员工表跟部门表之间有没有关系?如果有是什么关系?如何建立两张表的关系?1.创建员工表(工号、姓名、性别、出生日... 查看详情

javaee框架技术之14ssm综合案例产品管理crud(代码片段)

SSM综合案例一、课程目标1.【掌握】SSM整合2.【√】学习Lombok使用3.【理解】Layui页面书写(备注:其他前端技术也可以)4.【理解】理解SSM综合案例表的结构5.【掌握】产品管理二、SSM整合Spring+SpringMVC+Mybatis–>SSMSpring+Struts2+Hiber... 查看详情

数据库04:多表查询(代码片段)

多表连接查询准备表#部门表createtabledept(idintprimarykeynotnullauto_increment,namevarchar(20)notnull);#员工信息表createtableemployee(idintprimarykeyauto_increment,namevarchar(20)notnull,sexenum('male','fem 查看详情

leetcodeno.184部门工资最高的员工(代码片段)

一、题目描述Employee 表包含所有员工信息,每个员工有其对应的 Id,salary和departmentId。+----+-------+--------+--------------+|Id|Name|Salary|DepartmentId|+----+-------+--------+--------------+|1|Joe|70000|1||2 |Jim 查看详情

6-[表操作]--foreignkey表与表的关系(代码片段)

1、foreignkey  (1)快速理解foreignkey  员工信息表有三个字段:工号姓名部门  公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费        解决方法:  我们... 查看详情

力扣——部门工资最高的员工(数据库的题(代码片段)

Employee 表包含所有员工信息,每个员工有其对应的 Id,salary和departmentId。+----+-------+--------+--------------+|Id|Name|Salary|DepartmentId|+----+-------+--------+--------------+|1|Joe|70000|1||2|Henry|80000|2||3|Sam|60000|2||4|Max|90000|1|+----+-------+--------+------... 查看详情

mysql题2(代码片段)

阅读目录MySQL去重查找所属时期MySQL表员工employees表工的薪水表salaries部门领导表dept_manager部门表,dept_empSQL1查找最晚入职员工的所有信息SQL2查找入职员工时间排名倒数第三的员工所有信息SQL3查找当前薪水详情以及部门编号dept_no... 查看详情