• 【牛客】SQL130 试卷发布当天作答人数和平均分


    描述

    现有用户信息表user_info(uid用户ID,nick_name昵称, achievement成就值, level等级, job职业方向, register_time注册时间),示例数据如下:

    iduidnick_nameachievementleveljobregister_time
    11001牛客1号31007算法2020-01-01 10:00:00
    21002牛客2号21006算法2020-01-01 10:00:00
    31003牛客3号15005算法2020-01-01 10:00:00
    41004牛客4号11004算法2020-01-01 10:00:00
    51005牛客5号16006C++2020-01-01 10:00:00
    61006牛客6号30006C++2020-01-01 10:00:00

    释义:用户1001昵称为牛客1号,成就值为3100,用户等级是7级,职业方向为算法,注册时间2020-01-01 10:00:00

    试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间) 示例数据如下:

    idexam_idtagdifficultydurationrelease_time
    19001SQLhard602021-09-01 06:00:00
    29002C++easy602020-02-01 10:00:00
    39003算法medium802020-08-02 10:00:00

    试卷作答记录表exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分) 示例数据如下:

    iduidexam_idstart_timesubmit_timescore
    1100190012021-07-02 09:01:012021-09-01 09:41:0170
    2100290032021-09-01 12:01:012021-09-01 12:21:0160
    3100290022021-09-02 12:01:012021-09-02 12:31:0170
    4100290012021-09-01 19:01:012021-09-01 19:40:0180
    5100290032021-08-01 12:01:012021-08-01 12:21:0160
    6100290022021-08-02 12:01:012021-08-02 12:31:0170
    7100290012021-09-01 19:01:012021-09-01 19:40:0185
    8100290022021-07-06 12:01:01(NULL)(NULL)
    9100390022021-09-07 10:01:012021-09-07 10:31:0186
    10100390032021-09-08 12:01:012021-09-08 12:11:0140
    11100390032021-09-01 13:01:012021-09-01 13:41:0170
    12100390012021-09-08 14:01:01(NULL)(NULL)
    13100390022021-09-08 15:01:01(NULL)(NULL)
    14100590012021-09-01 12:01:012021-09-01 12:31:0190
    15100590022021-09-01 12:01:012021-09-01 12:31:0188
    16100590022021-09-02 12:11:012021-09-02 12:31:0189

    请计算每张SQL类别试卷发布后,当天5级以上的用户作答的人数uv和平均分avg_score,按人数降序,相同人数的按平均分升序,示例数据结果输出如下:

    exam_iduvavg_score
    9001381.3

    解释:只有一张SQL类别的试卷,试卷ID为9001,发布当天(2021-09-01)有1001、1002、1003、1005作答过,但是1003是5级用户,其他3位为5级以上,他们三的得分有[70,80,85,90],平均分为81.3(保留1位小数)。

    1. select
    2. exam_id,count(distinct uid) as uv,
    3. round(avg(score),1) as avg_score
    4. from
    5. exam_record left join examination_info using (exam_id)
    6. left join user_info using (uid)
    7. where level>5 and submit_time is not null
    8. and date_format(release_time,'%Y%m')=date_format(submit_time,'%Y%m')
    9. group by exam_id
    10. order by uv desc,avg_score
  • 相关阅读:
    EV代码签名申请步骤
    深入理解MySQL存储引擎、InnoDB与MyISAM的比较以及事务处理机制
    CC++中深浅拷贝(map、vector)与内存释放
    自然语言处理从零到入门 词干提取与词形还原
    2022谷粒商城学习笔记(二十一)购物车相关功能
    数据库mysql详细教学
    【算法训练营】最近公共祖先+求最大连续bit数
    系列文章之一文纵览【机器学习】(5) 常见评估方法:混淆矩阵、正确率、精确率、召回率、F值、预测概率、ROC曲线和AUC | 均方误差、决定系数、SVR | 超参数的设置 | 模型的过拟合与防止
    window开机自动运行python脚本
    创建springboot(五)文章发表项目
  • 原文地址:https://blog.csdn.net/weixin_60200880/article/details/136417752