刷题刷题!SQL

本文是针对SQL的学习与实践,通过牛客网的刷题挑战,涵盖员工入职时间、部门领导薪水、员工部门分配、薪水涨幅、非manager员工等多个方面,旨在提升数据分析师的SQL技能。
摘要由CSDN通过智能技术生成


冲!目标是成为一名合格的数据分析师!


牛客网

指路:https://www.nowcoder.com/ta/sql

1. 查找最晚入职员工的所有信息

SELECT *
FROM employees
WHERE hire_date = (
    SELECT MAX(hire_date)
    FROM employees)

2. 查找入职员工时间排名倒数第三的员工所有信息

SELECT a.emp_no, a.birth_date, a.first_name, a.last_name, a.gender, a.hire_date
FROM (
    SELECT *, DENSE_RANK()OVER(ORDER BY hire_date     DESC) AS orders
    FROM employees
) AS a
WHERE a.orders = 3
SELECT *
FROM employees
ORDER BY hire_date DESC
LIMIT 2,1
SELECT *
FROM employees
ORDER BY hire_date DESC
LIMIT 1 OFFSET 2

LIMIT M OFFSET N = LIMIT N, M 从第N+1行开始取M条记录。
排序函数的区别:ROW_NUMBER()/RANK()/DENSE_RANK()/NTILE() OVER(PARTITION BY * ORDER BY * DESC/ASC)

3. 查找各个部门当前领导当前薪水详情以及其对应部门编号dept_no

SELECT s.*, d.dept_no
FROM dept_manager d
JOIN salaries s ON d.emp_no = s.emp_no
ORDER BY s.emp_no ASC

分清join、left jion、right jion、inner join、full outer join的区别。

在这里插入图片描述

4. 查找所有已经分配部门的员工的last_name和first_name

SELECT e.last_name, e.first_name, d.dept_no
FROM dept_emp d 
LEFT JOIN employees e ON d.emp_no = e.emp_no
SELECT e.last_name, e.first_name, d.dept_no
FROM employees AS e, dept_emp AS d
W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值