最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

場(chǎng)景描述

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

survey_scores 表:存儲(chǔ)員工對(duì)公司的滿意度打分。

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

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

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

-- 插入調(diào)查打分?jǐn)?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);

面試題

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

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

預(yù)期結(jié)果

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

departmentavg_score
HR8.17
Engineering8.00
Sales7.00

HR 部門(mén)

  • 原始分?jǐn)?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

解題思路

標(biāo)記每個(gè)部門(mén)的最高分和最低分

  • 使用窗口函數(shù) ROW_NUMBER() 對(duì)每個(gè)部門(mén)的打分按升序和降序排名,標(biāo)記最高分和最低分。

過(guò)濾掉每個(gè)部門(mén)的最高分和最低分

  • 使用子查詢或 CTE(Common Table Expressions)過(guò)濾掉每個(gè)部門(mén)的最高分和最低分。

計(jì)算每個(gè)部門(mén)的平均分

  • 對(duì)過(guò)濾后的數(shù)據(jù)按部門(mén)分組,計(jì)算平均分。

SQL 實(shí)現(xiàn)

-- 第一步:標(biāo)記每個(gè)部門(mé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
)
-- 第二步:過(guò)濾掉每個(gè)部門(mén)的最高分和最低分,計(jì)算平均分
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

考察點(diǎn)

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

考慮mysql5.7版本

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

實(shí)現(xiàn)思路

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

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

相關(guān)文章

  • Mysql開(kāi)啟外網(wǎng)訪問(wèn)的全過(guò)程記錄

    Mysql開(kāi)啟外網(wǎng)訪問(wèn)的全過(guò)程記錄

    mysql 默認(rèn)是不允許外放訪問(wèn)的,只允許 localhost 或 127.0.0.1 訪問(wèn),下面這篇文章主要給大家介紹了關(guān)于Mysql開(kāi)啟外網(wǎng)訪問(wèn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • mysql查詢當(dāng)天的數(shù)據(jù)

    mysql查詢當(dāng)天的數(shù)據(jù)

    這篇文章主要介紹了mysql查詢當(dāng)天的數(shù)據(jù),第一種數(shù)量小的時(shí)候用,數(shù)據(jù)量稍微起來(lái)巨慢,第二種速度快,但是最好配合復(fù)合索引來(lái)查,避免全表掃描,需要的朋友可以參考下
    2023-08-08
  • MySQL雙Master配置的方法詳解

    MySQL雙Master配置的方法詳解

    本篇文章是對(duì)MySQL雙Master配置進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 使用mysql_udf與curl庫(kù)完成http_post通信模塊示例

    使用mysql_udf與curl庫(kù)完成http_post通信模塊示例

    這篇文章主要介紹了使用mysql_udf與curl庫(kù)完成http_post通信模塊示例,需要的朋友可以參考下
    2014-03-03
  • MySql范圍查找時(shí)索引不生效問(wèn)題的原因分析

    MySql范圍查找時(shí)索引不生效問(wèn)題的原因分析

    這篇文章主要給大家介紹了關(guān)于MySql范圍查找時(shí)索引不生效問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南

    DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南

    很多時(shí)候我們會(huì)遇到需要將本機(jī)數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出或者其他數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)入操作,這篇文章主要給大家介紹了關(guān)于DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • MySql庫(kù)與表的基礎(chǔ)操作大全

    MySql庫(kù)與表的基礎(chǔ)操作大全

    本文詳細(xì)講解了MySQL數(shù)據(jù)庫(kù)與表的核心操作,掌握這些基礎(chǔ)操作后,可進(jìn)一步學(xué)習(xí)MySQL的索引優(yōu)化、事務(wù)管理等高級(jí)知識(shí),提升數(shù)據(jù)庫(kù)操作的效率與安全性,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • mysql數(shù)據(jù)庫(kù)的分區(qū)表示例代碼

    mysql數(shù)據(jù)庫(kù)的分區(qū)表示例代碼

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)的分區(qū)表的相關(guān)資料,文章介紹了兩種創(chuàng)建SQL表分區(qū)的方法,分別是手動(dòng)創(chuàng)建和使用MySQL的定時(shí)事件來(lái)自動(dòng)創(chuàng)建分區(qū),手動(dòng)創(chuàng)建分區(qū)時(shí),需要在代碼中判斷分區(qū)并新增,可能會(huì)引入一些問(wèn)題,需要的朋友可以參考下
    2024-11-11
  • MySQL數(shù)據(jù)庫(kù)常用命令小結(jié)

    MySQL數(shù)據(jù)庫(kù)常用命令小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)命令,主要包括對(duì)數(shù)據(jù)庫(kù)常用命令及數(shù)據(jù)庫(kù)中對(duì)表的命令,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • MySQL中g(shù)roup by與max()一起使用的坑

    MySQL中g(shù)roup by與max()一起使用的坑

    最近在做一個(gè)項(xiàng)目,發(fā)現(xiàn)用之前SQL語(yǔ)句導(dǎo)出的余額與客戶人員最近消費(fèi)記錄所顯示的余額不一致,本文就來(lái)了解一下這個(gè)錯(cuò)誤,感興趣的可以了解一下
    2023-08-08

最新評(píng)論

武宁县| 寻乌县| 平武县| 天等县| 虎林市| 绍兴县| 乌拉特后旗| 香港| 鄯善县| 玛曲县| 东辽县| 秦皇岛市| 永修县| 抚宁县| 鹿邑县| 报价| 留坝县| 西盟| 安平县| 滨海县| 监利县| 沙河市| 平远县| 集安市| 大邑县| 武夷山市| 离岛区| 绥德县| 大足县| 安宁市| 濮阳县| 沧源| 平山县| 澄迈县| 化德县| 牡丹江市| 会东县| 兴义市| 长治市| 广东省| 平谷区|