亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql滿意度調(diào)查分組去除最高最低求平均分的實現(xiàn)思路

 更新時間:2025年01月21日 11:44:59   作者:碼到三十五  
該文章介紹了如何使用SQL查詢實現(xiàn)按部門分組,去除每個部門的最高分和最低分,并計算剩余分數(shù)的平均分,文章詳細描述了實現(xiàn)這一需求的步驟,包括使用窗口函數(shù)、子查詢和CTE等技術,感興趣的朋友跟隨小編一起看看吧

場景描述

我們有一個員工滿意度調(diào)查系統(tǒng),數(shù)據(jù)庫中有一張表:

survey_scores 表:存儲員工對公司的滿意度打分。

表結(jié)構(gòu)如下:

-- 調(diào)查打分表
CREATE TABLE survey_scores (
    score_id INT AUTO_INCREMENT PRIMARY KEY,
    department VARCHAR(50), -- 部門
    employee_id INT,        -- 員工ID
    score DECIMAL(5, 2)     -- 滿意度打分(0-10分)
);

插入一些測試數(shù)據(jù):

-- 插入調(diào)查打分數(shù)據(jù)
INSERT INTO survey_scores (department, employee_id, score) VALUES
('HR', 1, 8.5),
('HR', 2, 9.0),
('HR', 3, 7.0),
('HR', 4, 8.0),
('HR', 5, 9.5),
('Engineering', 6, 7.5),
('Engineering', 7, 8.0),
('Engineering', 8, 6.5),
('Engineering', 9, 9.0),
('Engineering', 10, 8.5),
('Sales', 11, 6.0),
('Sales', 12, 7.0),
('Sales', 13, 6.5),
('Sales', 14, 8.0),
('Sales', 15, 7.5);

面試題

編寫一個 SQL 查詢,實現(xiàn)以下需求:

  • 按部門(department)分組,去除每個部門的最高分和最低分。
  • 計算每個部門的平均分(去除最高分和最低分后)。
  • 返回以下字段:
    • department(部門)
    • avg_score(去除最高分和最低分后的平均分)

預期結(jié)果

上述數(shù)據(jù),查詢結(jié)果類似于:

departmentavg_score
HR8.17
Engineering8.00
Sales7.00

HR 部門

  • 原始分數(shù):[7.0, 8.0, 8.5, 9.0, 9.5]
  • 去除最高分(9.5)和最低分(7.0)后:[8.0, 8.5, 9.0]
  • 平均分:(8.0 + 8.5 + 9.0) / 3 = 8.17

解題思路

標記每個部門的最高分和最低分

  • 使用窗口函數(shù) ROW_NUMBER() 對每個部門的打分按升序和降序排名,標記最高分和最低分。

過濾掉每個部門的最高分和最低分

  • 使用子查詢或 CTE(Common Table Expressions)過濾掉每個部門的最高分和最低分。

計算每個部門的平均分

  • 對過濾后的數(shù)據(jù)按部門分組,計算平均分。

SQL 實現(xiàn)

-- 第一步:標記每個部門的最高分和最低分
WITH ranked_scores AS (
    SELECT
        department,
        score,
        ROW_NUMBER() OVER (PARTITION BY department ORDER BY score ASC) AS asc_rank,
        ROW_NUMBER() OVER (PARTITION BY department ORDER BY score DESC) AS desc_rank
    FROM
        survey_scores
)
-- 第二步:過濾掉每個部門的最高分和最低分,計算平均分
SELECT
    department,
    AVG(score) AS avg_score
FROM
    ranked_scores
WHERE
    asc_rank > 1 AND desc_rank > 1 -- 去除最高分和最低分
GROUP BY
    department;

查詢結(jié)果

上述數(shù)據(jù),查詢結(jié)果:

departmentavg_score
HR8.17
Engineering8.00
Sales7.00

考察點

  • 窗口函數(shù)
    • 使用 ROW_NUMBER() 對每個部門的打分進行排名。
  • 子查詢和 CTE(Common Table Expressions)
    • 使用 WITH 子句將復雜查詢分解為多個步驟,提高可讀性。

考慮mysql5.7版本

不支持窗口函數(shù)和CTS

實現(xiàn)思路

  • 找到每個部門的最高分和最低分
    • 使用 GROUP BYMAX()、MIN() 聚合函數(shù)找到每個部門的最高分和最低分。
  • 過濾掉每個部門的最高分和最低分
    • 使用子查詢將原始數(shù)據(jù)與最高分和最低分進行比較,排除這些分數(shù)。
  • 計算每個部門的平均分
    • 對過濾后的數(shù)據(jù)按部門分組,計算平均分

到此這篇關于Mysql滿意度調(diào)查分組去除最高最低求平均分的文章就介紹到這了,更多相關mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • MySQL系列教程小白數(shù)據(jù)庫基礎

    MySQL系列教程小白數(shù)據(jù)庫基礎

    這篇文章主要為大家介紹了MySQL系列中的數(shù)據(jù)庫基礎,非常適合數(shù)據(jù)庫小白的入門基礎篇,詳細的講解了數(shù)據(jù)庫的基本概念以及基礎命令及操作示例,有需要的朋友可以借鑒參考下
    2021-10-10
  • MySQL 觸發(fā)器定義與用法簡單實例

    MySQL 觸發(fā)器定義與用法簡單實例

    這篇文章主要介紹了MySQL 觸發(fā)器定義與用法,結(jié)合簡單實例形式總結(jié)分析了mysql觸發(fā)器的語法、原理、定義及使用方法,需要的朋友可以參考下
    2019-09-09
  • MySQL復合索引的深入探究

    MySQL復合索引的深入探究

    這篇文章主要給大家介紹了關于MySQL復合索引的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • mysql大批量插入數(shù)據(jù)的4種方法示例

    mysql大批量插入數(shù)據(jù)的4種方法示例

    這篇文章主要給大家介紹了關于mysql大批量插入數(shù)據(jù)的4種方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 如何解決mysql無法關閉的問題

    如何解決mysql無法關閉的問題

    在本篇文章里小編給大家整理的是一篇關于解決mysql無法關閉的問題的相關內(nèi)容,需要的朋友們可以參考下。
    2020-08-08
  • MySQL實例crash的案例詳細分析

    MySQL實例crash的案例詳細分析

    這篇文章主要給大家介紹了關于MySQL實例crash的相關資料,文中通過示例代碼的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • mysql中的四大運算符種類實例匯總(20多項)?

    mysql中的四大運算符種類實例匯總(20多項)?

    這篇文章主要介紹了mysql中的四大運算符種類匯總,運算符連接表達式中的各個操作數(shù),他的作用是用來指明對數(shù)據(jù)表中的操作數(shù)所進行的運算
    2022-07-07
  • MySQL GROUP_CONCAT限制解決方案

    MySQL GROUP_CONCAT限制解決方案

    這篇文章主要介紹了MySQL GROUP_CONCAT限制解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
    2020-09-09
  • 關于django連接mysql數(shù)據(jù)庫并進行數(shù)據(jù)庫的創(chuàng)建的問題

    關于django連接mysql數(shù)據(jù)庫并進行數(shù)據(jù)庫的創(chuàng)建的問題

    這篇文章主要介紹了django連接mysql數(shù)據(jù)庫并進行數(shù)據(jù)庫的創(chuàng)建,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • MySQL存儲過程的權限問題小結(jié)

    MySQL存儲過程的權限問題小結(jié)

    這篇文章主要介紹了MySQL存儲過程的權限問題小結(jié)及mysql 創(chuàng)建存儲過程權限問題,感興趣的朋友一起看看吧
    2018-04-04

最新評論