首页 > 数据库 >MySQL基础20题(续前面的20题)

MySQL基础20题(续前面的20题)

时间:2024-07-31 16:29:31浏览次数:10  
标签:20 name 前面 employees job MySQL department id SELECT

写在前面

今天继续前面的20题之后的练习,数据都是一样的,可以直接使用,来看看你的sql功底降了没。

基础20题

#1.查询每个员⼯的姓名、邮箱、职位名称以及所在部⻔名称。
	SELECT
	CONCAT(last_name,first_name) as 姓名,
	email,
	job_title,
	department_name
FROM
	employees e 
	JOIN departments d ON e.department_id=d.department_id
	JOIN jobs j ON e.job_id = j.job_id ;

#2.查询⽉薪最⾼的员⼯的姓名、职位名称以及⽉薪。
	SELECT
	CONCAT(last_name,first_name) as 姓名,
	job_title,
	salary
FROM
	employees e 
JOIN jobs j on e.job_id = j.job_id
WHERE	salary = (SELECT MAX(salary) FROM employees);

#3.查询每个部⻔的平均⽉薪。
#注:如果某一部门没有员工不会显示
	SELECT
	department_name,
	AVG(salary)
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
GROUP BY
	department_name;   

#4.查询部⻔中员⼯⽉薪⾼于5000的所有员⼯的姓名、⽉薪以及所在部⻔名称。
	SELECT
	CONCAT(last_name,first_name) as 姓名,
	salary,
 department_name
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
WHERE
	salary > 5000;

#5.查询奖⾦率最⾼的员⼯的姓名、职位名称以及奖⾦率。
	SELECT
	CONCAT(last_name,first_name) as 姓名,
	job_title,
	commission_pct
FROM
	employees e 
JOIN jobs j ON e.job_id = j.job_id
WHERE
	commission_pct = (SELECT MAX(commission_pct) FROM employees);

#6.查询每个职位的最⾼⽉薪和最低⽉薪。
	SELECT
	job_title,
	MAX(salary),
	MIN(salary)
FROM
	employees e 
JOIN jobs j ON e.job_id = j.job_id
GROUP BY
	job_title;
	
#7.查询⼊职时间早于2000年的所有员⼯的姓名、⼊职⽇期以及职位名称。
	SELECT
	CONCAT(last_name,first_name) as 姓名,
	hiredate,
	job_title
FROM
	employees e 
JOIN jobs j on e.job_id = j.job_id
WHERE
	YEAR(hiredate) < 2000;

#8.查询每个部⻔的员⼯⼈数。
	SELECT
	COUNT(*) as 人数,
	department_name
FROM
  employees e 
JOIN departments d ON e.department_id = d.department_id
GROUP BY
	department_name;

#9.查询在每个部⻔中⽉薪最⾼的员⼯的姓名、⽉薪以及部⻔名称。
#注:在使用in时可以使用()将需要的列括起来查询
	SELECT 
	CONCAT(e.last_name,e.first_name) as 姓名,
	e.salary,
	d.department_name
FROM
	employees e JOIN departments d ON e.department_id = d.department_id 
WHERE
	(e.salary,d.department_id) in (
SELECT MAX(salary),department_id FROM employees GROUP BY department_id);               

#10.查询⽉薪超过部⻔平均⽉薪的员⼯的姓名、⽉薪以及所在部⻔名称。
	SELECT
	CONCAT( e1.last_name, e1.first_name ) AS 姓名,
	e1.salary,
	d.department_name 
FROM
	employees e1
	JOIN departments d ON e1.department_id = d.department_id 
WHERE
e1.salary > ( SELECT AVG( e2.salary ) FROM employees e2 WHERE e1.department_id = e2.department_id);

#11.查询每个职位的员⼯⼈数。
	SELECT 
	COUNT(*) as 人数,
	job_title
FROM
	employees e 
JOIN jobs j ON e.job_id = j.job_id
GROUP BY
	job_title;

#12.查询每个部⻔的最⾼⽉薪和最低⽉薪。
	SELECT
	department_name,
	MAX(salary),
	MIN(salary)
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
GROUP BY
	department_name;

#13.查询每个员⼯的姓名、邮箱、职位名称以及他们的上级领导的姓名。
	SELECT
	CONCAT(e1.last_name,e1.first_name) as 姓名,
	e1.email,
	j.job_title,
	CONCAT(e2.last_name,e2.first_name) as 上级领导
FROM
	employees e1
JOIN employees e2 ON e1.manager_id = e2.employee_id
JOIN jobs j ON e1.job_id = j.job_id;

#14.查询每个部⻔的员⼯平均奖⾦率。
	SELECT
	department_name,
	AVG(commission_pct) as 平均奖金率
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
GROUP BY
	department_name;

#15.查询每个城市的员⼯⼈数。
	SELECT
	COUNT(*) as 人数,
	city
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
GROUP BY
	city;

#16.查询每个部⻔的职位种类数。
#注:使用distinct可以去重算种类数
	SELECT
	COUNT(DISTINCT job_id) as 种类数,
	department_name
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
GROUP BY
	department_name;  

#17.查询⼯资⾼于其职位平均⼯资的员⼯姓名、职位名称以及⽉薪。
	SELECT
	CONCAT(e1.last_name, e1.first_name ) AS 姓名,
	j.job_title,
	e1.salary
FROM
 employees e1
JOIN jobs j ON e1.job_id = j.job_id
WHERE
	e1.salary > (SELECT AVG(e2.salary) FROM employees e2 WHERE e1.job_id = e2.job_id);

#18.查询每个国家的员⼯⼈数。
	SELECT
	COUNT(DISTINCT employee_id) as 人数,
	country_id
FROM
	employees e 
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
GROUP BY
	country_id;

#19.查询没有领导的员⼯的姓名以及职位名称。
	SELECT
	CONCAT( last_name, first_name ) AS 姓名,
	job_title
FROM
	employees e 
JOIN jobs j ON e.job_id = j.job_id
WHERE
	manager_id is null ;

#20.查询job_id为"IT_PROG"的员⼯的姓名、职位名称以及⽉薪。
	SELECT
	CONCAT( last_name, first_name ) AS 姓名,
	job_title,
	salary
FROM
	employees e 
JOIN jobs j ON e.job_id = j.job_id
WHERE
	e.job_id = 'IT_PROG';

好了,今天的分享结束了,答案仅供参考不代表最终答案,如果有更换的方法,欢迎在底下留言评论!

标签:20,name,前面,employees,job,MySQL,department,id,SELECT
From: https://www.cnblogs.com/cjybigdatablog/p/18334913

相关文章

  • [GYCTF2020]FlaskApp (pin码,jinja2绕过注入)
    题目就是flask下面是判断模版注入的方法a{*comment*}b和{{7*'7'}}base64编码后解码都报错no,无法判断模版引擎直接用下jinja2的试一试,把编码后的密文拿去解码,payload:{{"".__class__mro(2)__subclasses__()}}报错是jinja2后面就整不会了,看别人的wp整理一下:由于不......
  • [SUCTF 2019]Pythonginx (unicode转IDNA域名分割漏洞)
    代码我看到这两个就感觉有问题了,第一个转编码这个搜了一下是unicode转idna的问题,第二个urlopen是Python标准库中urllib.request模块中的一个函数,用于向指定的URL发送HTTP请求并获取响应参考文章:https://xz.aliyun.com/t/6070?time__1311=n4%2BxnD0DgDcmG%3DrDsYoxCqiIQ7KDtH......
  • 0CTF/TCTF 2023 OLAPInfra Nashorn RCE + HDFS UDF RCE
    前置知识ClickHouse:是一个开源的列式数据库管理系统clickhouse-jdbc-bridge:clickhouse数据库和jdbc交互的工具HDFS(HadoopDistributedFileSystem):专为大数据存储和处理而设计。审计<?phperror_reporting(E_ALL^E_DEPRECATED);require__DIR__.'/../vendor/autol......
  • mysql的sql怎么拼接字符串类型?
    在MySQL中,字符串拼接通常不使用+号,而是使用CONCAT()函数。MySQL并不支持用+号直接进行字符串接。在MySQL中,+号用于数值运算。使用CONCAT()函数进行字符串拼接示例:SELECTCONCAT('Hello','','World')ASgreeting;结果:+----------+|greeting|+---......
  • 题解_P2024 [NOI2001] 食物链
    [NOI2001]食物链题目描述动物王国中有三类动物\(A,B,C\),这三类动物的食物链构成了有趣的环形。\(A\)吃\(B\),\(B\)吃\(C\),\(C\)吃\(A\)。现有\(N\)个动物,以\(1\simN\)编号。每个动物都是\(A,B,C\)中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这......
  • 2024.7.31 test
    A给定序列\(S\),一开始只有一个数\(x\),每次操作是把每个\(S_i\)替换为\(S_i\)的所有约数(从小到大排序)求\(k\)次操作后序列前\(m\)的位置的和。\(x,k\le10^{12},m\le10^7\)。因为把每个\(S_i\)替换为\(S_i\)的所有约数后相对顺序不变,所以直接从前往后搜索,复杂度......
  • 2024杭电多校2&3
    能补多少是多少吧(大哭21002梦中的地牢战斗(hdu7446)本来看到66/386的战况差点打算跳过,看一眼题解似乎是dp+最短路之类,或许可以再想想?于是开始认真读题,数据范围很小,尤其是怪物数量\(k\leq10\),加之题目时限\(4s\),考虑略显暴力的状态压缩。由于角色血量\(\leq0\)时失去所有......
  • 宝兰德受邀出席2024光合组织领导人大会,共话产业生态开放共赢之道
    近日,2024光合组织领导人大会在郑州国际会展中心圆满召开。大会以“共启AI,豫见未来”为主题,立足AI计算产业生态协同发展,广邀院士专家、行业领袖、软硬件生态厂商齐聚一堂,共话先进计算产业高质量发展。作为光合组织的重要成员单位和国内领先的基础软件供应商,宝兰德受邀出席此次盛......
  • 洛谷题单指南-前缀和差分与离散化-P1083 [NOIP2012 提高组] 借教室
    原题链接:https://www.luogu.com.cn/problem/P1083题意解读:已知第i天有r[i]个教室可以供租借,有m个租借教室的订单,第i订单需要在第s[i]~t[i]天区间内租借d[i]个教室,计算是否全部订单都能满足,如果不满足要输出从第几个订单开始不满足。解题思路:1、朴素做法枚举1~m个订单,通过差分......
  • 2024 年过半,AI 大模型在各行业的落地实践走到哪了?
    转眼之间,2024年已经过半,AI大模型的热度从去年的技术探索转向落地实践,肉眼可见的是,各行各业都纷纷在这场热潮中寻找新的业务创新点和行业增长点。“大模型的出现带来了变革,它实现了知识平权,为我们提供了技术条件,使得我们能够参与到AI的应用中来。”宁德核电人工智能实验......