码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【MySQL】【牛客-SQL进阶挑战】03 聚合分组查询


    文章目录

    • 题目链接
    • 牛客-SQL进阶挑战 03 聚合分组查询
      • 聚合函数
        • SQL 123 SQL类别高难度试卷得分的截断平均值
        • SQL 124 统计作答次数
        • SQL 125 得分不小于平均分的最低分
      • 分组查询
        • SQL 126 平均活跃天数和月活人数
        • SQL 127 月总刷题数和日均刷题数
        • SQL 128 未完成试卷数大于1的有效用户
          • 方案一
          • 方案二


    题目链接

    https://www.nowcoder.com/exam/oj?page=1&tab=SQL%E7%AF%87&topicId=240

    在这里插入图片描述

    牛客-SQL进阶挑战 03 聚合分组查询

    聚合函数

    SQL 123 SQL类别高难度试卷得分的截断平均值

    SELECT
      t1.tag,
      t1.difficulty,
      ROUND(
        (SUM(score) - MAX(score) - MIN(score)) / (COUNT(score) -2),
        1
      ) clip_avg_score
    FROM
      examination_info t1
      JOIN exam_record t2 ON t1.exam_id = t2.exam_id
    WHERE
      t1.tag = 'SQL'
      AND t1.difficulty = 'hard';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    SQL 124 统计作答次数

    SELECT
      COUNT(id) total_pv,
      COUNT(submit_time) complete_pv,
      COUNT(DISTINCT IF(submit_time IS NOT NULL, exam_id, NULL)) complete_exam_cnt
    FROM
      exam_record;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    SQL 125 得分不小于平均分的最低分

    SELECT MIN(score) min_score_over_avg
    FROM exam_record
    WHERE exam_id IN (SELECT exam_id FROM examination_info WHERE tag = 'SQL')
    AND score >=
    (
        SELECT AVG(score) avg_score
        FROM exam_record
        WHERE exam_id IN (
                SELECT exam_id FROM examination_info WHERE tag = 'SQL'
        )
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    分组查询

    SQL 126 平均活跃天数和月活人数

    SELECT
      DATE_FORMAT(submit_time, '%Y%m') `month`,
      ROUND((
          COUNT(DISTINCT uid, DATE(submit_time)) / COUNT(DISTINCT uid)
        ),2) avg_active_days,
      COUNT(DISTINCT uid) mau
    FROM
      exam_record
    WHERE
      submit_time IS NOT NULL
      AND DATE_FORMAT(submit_time, '%Y') = 2021
    GROUP BY
      DATE_FORMAT(submit_time, '%Y%m')
    ORDER BY
      `month` ASC;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    SQL 127 月总刷题数和日均刷题数

    SELECT
      DATE_FORMAT(submit_time, '%Y%m') submit_month,
      COUNT(*) month_q_cnt,
      ROUND(COUNT(*) / AVG(DAY(LAST_DAY(submit_time))), 3) avg_day_q_cnt
    FROM
      practice_record
    WHERE
      YEAR(submit_time) = '2021'
      AND submit_time IS NOT NULL
    GROUP BY
      DATE_FORMAT(submit_time, '%Y%m')
      
    UNION ALL
    
    SELECT
      '2021汇总' submit_month,
      COUNT(*) month_q_cnt,
      ROUND(COUNT(*) / 31, 3) avg_day_q_cnt
    FROM
      practice_record
    WHERE
      YEAR(submit_time) = '2021'
      AND submit_time IS NOT NULL
    ORDER BY
      submit_month;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    SQL 128 未完成试卷数大于1的有效用户

    方案一

    在这里插入图片描述

    SELECT t1.uid,t1.incomplete_cnt,t1.complete_cnt,t2.detail
    FROM (
    	SELECT 
    		uid, 
    		SUM(IF(submit_time IS NULL,1,0)) incomplete_cnt, 
    		COUNT(submit_time) complete_cnt
    	FROM 
    		exam_record
    	WHERE 
    		YEAR(start_time)=2021
    	GROUP BY 
    		uid
    	HAVING 
    		COUNT(submit_time) >= 1 
    		AND SUM(IF(submit_time IS NULL,1,0)) > 1 
    		AND SUM(IF(submit_time IS NULL,1,0)) < 5
    ) t1,(
    	SELECT 
    		uid,
    		GROUP_CONCAT(
    			DISTINCT CONCAT(DATE(start_time),':',tag) 
    			ORDER BY start_time 
    			SEPARATOR ';') detail
    	FROM 
    		exam_record t1 
    	JOIN examination_info t2 
    		ON t1.exam_id = t2.exam_id
    	WHERE 
    		YEAR(start_time) = 2021
    	GROUP BY 
    		uid
    ) t2
    WHERE 
    	t1.uid = t2.uid
    ORDER BY 
    	t1.incomplete_cnt DESC;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    方案二

    在这里插入图片描述

    SELECT
      uid,
      SUM(IF(submit_time IS NULL, 1, 0)) incomplete_cnt,
      COUNT(submit_time) complete_cnt,
      GROUP_CONCAT(
        DISTINCT CONCAT(DATE(start_time), ':', tag)
        ORDER BY start_time
        SEPARATOR ';') detail
    FROM
      exam_record t1
      JOIN examination_info t2 ON t1.exam_id = t2.exam_id
    WHERE
      YEAR(start_time) = 2021
    GROUP BY
      uid
    HAVING
      COUNT(submit_time) >= 1
      AND SUM(IF(submit_time IS NULL, 1, 0)) > 1
      AND SUM(IF(submit_time IS NULL, 1, 0)) < 5
    ORDER BY
      incomplete_cnt DESC;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    css 占位隐藏
    算法2:链表的逆转
    大数据高级开发工程师——Spark学习笔记(9)
    外汇天眼:美联储又一高管支持11月加息75个基点12月小幅加息 通胀不达标不罢休
    驱动——按键中断控制LED灯实验
    vivo统一接入网关VUA转发性能优化实践
    数据结构——链表
    用非递归的方法实现二叉树中的层遍历,先序遍历,中序遍历和后序遍历
    Flutter笔记:手写并发布一个人机滑动验证码插件
    搭建docke-cli的调试环境
  • 原文地址:https://blog.csdn.net/guliguliguliguli/article/details/126329981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号