成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL 面試攻略:從普通到困難的副本通關(guān)之旅

數(shù)據(jù)庫 開發(fā)
本文匯總了一些 SQL 面試中經(jīng)典且具有代表性的題目,涵蓋普通和困難模式,幫助讀者熟悉一些常考的 SQL 問題。每道題均附有詳細(xì)解答,提供示例代碼和解析。

本文匯總了一些 SQL 面試中經(jīng)典且具有代表性的題目,涵蓋普通和困難模式,幫助讀者熟悉一些常考的 SQL 問題。每道題均附有詳細(xì)解答,提供示例代碼和解析。

示例表結(jié)構(gòu)

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    salary DECIMAL(10, 2),
    manager_id INT,
    department_id INT
);

CREATE TABLE departments (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

普通模式

1. 計算每個部門的平均工資,并只顯示平均工資超過 6000 的部門

解答:

SELECT department_id, AVG(salary) as avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 6000;

解析:這個查詢使用了 GROUP BY 子句進(jìn)行分組,AVG () 函數(shù)計算平均值,HAVING 子句用于過濾分組后的結(jié)果。

2. 查詢 employees 表中每個部門工資最高的員工姓名和工資

解答:

SELECT e.name, e.salary, e.department_id
FROM employees e
WHERE e.salary = (
    SELECT MAX(salary)
    FROM employees
    WHERE department_id = e.department_id
);

解析:

  • 通過子查詢找出每個部門的最高工資。
  • 使用外層查詢關(guān)聯(lián)部門和最高工資對應(yīng)的員工。

3. 找出工資高于公司平均工資的所有員工

解答:

SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

解析:這個查詢使用了子查詢來計算平均工資,然后在主查詢中使用這個結(jié)果進(jìn)行比較。

4. 查詢兩個表 employees 和 departments,展示每位員工的姓名和所屬部門的名稱

解答:

SELECT e.name AS employee_name, d.name AS department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.id;

解析:

  • 使用 INNER JOIN 連接兩張表。
  • 考查多表關(guān)聯(lián)查詢。
  • 困難模式

5. 查詢 employees 表中所有重復(fù)的姓名及其出現(xiàn)次數(shù)

解答:

SELECT name, COUNT(*) AS name_count
FROM employees
GROUP BY name
HAVING COUNT(*) > 1;

解析:

  • 使用 GROUP BY 對名字分組。
  • HAVING 子句篩選分組后的數(shù)據(jù)。
  • 考查聚合和過濾的結(jié)合使用。

6. 查詢連續(xù)三個月工資增長的員工姓名

示例表結(jié)構(gòu):

CREATE TABLE salaries (
    employee_id INT,
    month DATE,
    salary DECIMAL(10, 2),
    PRIMARY KEY (employee_id, month)
);

解答:

SELECT DISTINCT s1.employee_id
FROM salaries s1
JOIN salaries s2 ON s1.employee_id = s2.employee_id AND DATE_ADD(s1.month, INTERVAL 1 MONTH) = s2.month
JOIN salaries s3 ON s2.employee_id = s3.employee_id AND DATE_ADD(s2.month, INTERVAL 1 MONTH) = s3.month
WHERE s1.salary < s2.salary AND s2.salary < s3.salary;

解析:

  • 通過自連接比較同一員工在連續(xù)月份的工資。
  • 使用 DATE_ADD 處理日期計算。
  • 考查自連接和復(fù)雜條件查詢。

7. 查詢員工的累計工資排名(按工資降序排列)

解答:

SELECT name, salary,
       RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees;

解析:

  • 使用窗口函數(shù) RANK() 實現(xiàn)排名。
  • 考查窗口函數(shù)的使用。

8. 對于每個部門,查找工資排名前三的員工

解答:

SELECT name, department_id, salary
FROM (
    SELECT name, department_id, salary,
           DENSE_RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as rank
    FROM employees
) ranked
WHERE rank <= 3;

解析:這個查詢使用了窗口函數(shù) DENSE_RANK () 來為每個部門的員工根據(jù)工資進(jìn)行排名,然后在外部查詢中篩選出排名前三的記錄。

9. 顯示所有員工及其所有上級管理者的姓名

解答:

WITH RECURSIVE emp_hierarchy AS (
    SELECT id, name, manager_id
    FROM employees
    WHERE manager_id IS NULL
    UNION ALL
    SELECT e.id, e.name, e.manager_id
    FROM employees e
    JOIN emp_hierarchy eh ON e.manager_id = eh.id
)
SELECT e.name as employee, GROUP_CONCAT(m.name ORDER BY m.id) as managers
FROM emp_hierarchy e
LEFT JOIN emp_hierarchy m ON e.id != m.id AND e.id = m.manager_id
GROUP BY e.id, e.name;

解析:這是一個遞歸公共表表達(dá)式(CTE)查詢,用于處理層級數(shù)據(jù)。它首先找到頂級管理者,然后遞歸地找到所有下屬。

結(jié)語

SQL 面試題往往注重以下能力:

  • 數(shù)據(jù)查詢、過濾與分組:如 SELECT、WHERE、GROUP BY。
  • 多表操作:如 JOIN、子查詢。
  • 高級特性:如窗口函數(shù)、自連接。
責(zé)任編輯:趙寧寧 來源: 源話編程
相關(guān)推薦

2025-04-28 08:18:25

代碼遺漏空值強耦合

2025-02-24 08:04:54

2017-08-02 17:00:51

SQL關(guān)系代數(shù)數(shù)據(jù)

2019-07-02 16:57:20

混合云技術(shù)Linux

2009-06-19 14:50:53

2011-07-21 09:32:33

SQL ServerDenali

2011-07-21 09:41:30

SQL ServerDenali

2024-04-30 14:50:13

2021-07-27 09:54:57

RESTful應(yīng)用程序

2023-12-08 14:18:11

2023-05-30 13:53:31

模型語言

2015-07-30 14:20:27

面試攻略

2018-06-19 10:16:27

新華三、百城巡展、H3

2018-11-30 09:44:50

交通能源智能

2010-04-20 15:47:31

面試

2024-09-24 18:48:43

2024-06-07 07:41:03

2020-05-21 14:03:21

python編程代碼

2018-10-22 14:28:26

面試官數(shù)據(jù)公司
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美1级 | 国产激情视频在线 | 一级黄色片美国 | 91国内在线观看 | 久久中文字幕一区 | 成人激情视频在线 | 欧美日韩亚洲二区 | 亚洲成人一区二区 | 男女爱爱福利视频 | 欧洲成人午夜免费大片 | 久久亚洲一区 | 天天操夜夜操免费视频 | 久久国产精品久久 | 国产精品网址 | 精品视频在线一区 | 久久成人人人人精品欧 | 国产亚洲精品91 | 久久久国产视频 | 国产高清在线观看 | 国产美女久久久 | 男人的天堂久久 | 国产成人亚洲精品自产在线 | 91精品国产91久久久久久 | 欧美v在线观看 | 亚洲一区在线免费观看 | 日韩欧美在线一区 | av毛片在线免费观看 | 欧美黄色绿像 | 日本91av视频 | 9999在线视频 | 国产女人第一次做爰毛片 | 日本一区视频在线观看 | 久久久久国产精品免费免费搜索 | 国产精品日韩欧美一区二区三区 | 国产精品久久在线观看 | 国产精品久久久免费 | 亚洲男女视频在线观看 | 午夜激情免费视频 | 欧美精品在欧美一区二区 | 在线2区| 欧美精品中文 |