欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

數(shù)據(jù)工程師面試中最常問的復(fù)雜SQL查詢

admin
2023年11月16日 23:2 本文熱度 542

一、示例數(shù)據(jù)表

1.1 假設(shè)我們有一張示例數(shù)據(jù)表“employees”,包含以下列:

  • id:每個員工的唯一標識符

  • name:員工姓名

  • gender:員工性別

  • salary:員工工資

  • department:員工所在部門

1.2 下面是創(chuàng)建employees表并插入樣本數(shù)據(jù)的MySQL腳本:

create TABLE employees(    id         INT AUTO_INCREMENT PRIMARY KEY,    name       VARCHAR(50) NOT NULL,    gender     VARCHAR(10) NOT NULL,    salary     INT         NOT NULL,    department VARCHAR(50) NOT NULL);
insert INTO employees (name, gender, salary, department)VALUES ('Ramesh Gupta', 'Male', 55000, 'Sales'),       ('Priya Sharma', 'Female', 65000, 'Marketing'),       ('Sanjay Singh', 'Male', 75000, 'Sales'),       ('Anjali Verma', 'Female', 45000, 'Finance'),       ('Rajesh Sharma', 'Male', 80000, 'Marketing'),       ('Smita Patel', 'Female', 60000, 'HR'),       ('Vikram Yadav', 'Male', 90000, 'Sales'),       ('Neha Sharma', 'Female', 55000, 'Marketing'),       ('Rahul Singh', 'Male', 70000, 'Finance'),       ('Sonali Gupta', 'Female', 50000, 'Sales');

Employees 表

二、查詢

2.1 查詢每個部門中男女職工的平均薪水

實現(xiàn)方案

select department, gender, AVG(salary) AS avg_salary
from employees
GROUP BY department, gender;

輸出

2.2 查詢每個部門中薪水最高的員工姓名及薪水

實現(xiàn)方案

select name, salary
from employees
where (department, salary) IN (select department, MAX(salary)
from employees
GROUP BY department);

輸出:

2.3 查詢每個部門中比所在部門平均薪水高的員工信息

實現(xiàn)方案

select name, salary, department
from employeeswhere salary > (select AVG(salary)
                from employees AS e2
                where e2.department = employees.department);

輸出:

2.4 查詢每個部門中薪水前三名的員工信息

實現(xiàn)方案

select e.department, e.name, e.salary
from employees e
where (select COUNT(*)
       from employees
       where department = e.department
         AND salary > e.salary) < 3;

輸出:

2.5 查詢每個部門中比所在部門平均薪水高的員工姓名(該問題與第三個問題一樣,只不過這里使用連接實現(xiàn))

實現(xiàn)方案

select e.namefrom employees e
         JOIN (select department, AVG(salary) AS avg_salary
               from employees
               GROUP BY department) AS dept_avg
              ON e.department = dept_avg.department
where e.salary > dept_avg.avg_salary;

輸出:

2.6 查詢每個部門中最高薪水的員工信息

實現(xiàn)方案

WITH max_salary AS (select department, MAX(salary) AS highest_salary
                    from employees
                    GROUP BY department)
select m.department, e.name, e.salaryfrom employees e
         JOIN max_salary m
              ON e.department = m.department AND e.salary = m.highest_salary;


輸出

該實現(xiàn)需要MySQL 8.0及以上版本才可運行,因為WITH...AS...子句只有8.0及以上版本才支持。


該文章在 2023/11/16 23:02:23 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved