当前位置: 首页 > news >正文

牛客网SQL进阶129 :月均完成试卷数不小于3的用户

月均完成试卷数不小于3的用户爱作答的类别_牛客题霸_牛客网

0 问题描述

  基于试卷作答记录表exam_record、试卷信息表examination_info ,统计出 “月均完成试卷数”不小于3的用户作答的类别及作答次数,按次数降序输出。

1 数据准备

drop table if exists examination_info;
CREATE TABLE examination_info (id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',exam_id int UNIQUE NOT NULL COMMENT '试卷ID',tag varchar(32) COMMENT '类别标签',difficulty varchar(8) COMMENT '难度',duration int NOT NULL COMMENT '时长',release_time datetime COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_general_ci;drop table if exists exam_record;
CREATE TABLE  exam_record (id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid int NOT NULL COMMENT '用户ID',exam_id int NOT NULL COMMENT '试卷ID',start_time datetime NOT NULL COMMENT '开始时间',submit_time datetime COMMENT '提交时间',score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES(9001, 'SQL', 'hard', 60, '2020-01-01 10:00:00'),(9002, 'SQL', 'easy', 60, '2020-02-01 10:00:00'),(9003, '算法', 'medium', 80, '2020-08-02 10:00:00');INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2021-07-02 09:01:01', '2021-07-02 09:21:01', 80),
(1002, 9001, '2021-09-05 19:01:01', '2021-09-05 19:40:01', 81),
(1002, 9002, '2021-09-02 12:01:01', null, null),
(1002, 9003, '2021-09-01 12:01:01', null, null),
(1002, 9001, '2021-07-02 19:01:01', '2021-07-02 19:30:01', 82),
(1002, 9002, '2021-07-05 18:01:01', '2021-07-05 18:59:02', 90),
(1003, 9002, '2021-07-06 12:01:01', null, null),
(1003, 9003, '2021-09-07 10:01:01', '2021-09-07 10:31:01', 86),
(1004, 9003, '2021-09-06 12:01:01', null, null),
(1002, 9003, '2021-09-01 12:01:01', '2021-09-01 12:31:01', 81),
(1005, 9001, '2021-09-01 12:01:01', '2021-09-01 12:31:01', 88),
(1005, 9002, '2021-09-01 12:01:01', '2021-09-01 12:31:01', 88),
(1006, 9002, '2021-09-02 12:11:01', '2021-09-02 12:31:01', 89);

2 数据分析

-- MySQL写法
selectb.tag,count(*) cnt
from exam_record a
left join examination_info bon a.exam_id = b.exam_id
wherea.uid in (selectuidfrom exam_recordwhere submit_time is not nullgroup byuid,date_format(submit_time, "%Y%m")havingcount(submit_time) > 2)
group by b.tag
order by cnt desc;

思路分析:

  • step1: 先筛选出 月均完成试卷数不小于3的用户;
  • step2:按examination_info表的tag进行分组统计,最后降序输出;

3 小结


http://www.mrgr.cn/news/1861.html

相关文章:

  • spring(1)
  • Hadoop 中的大数据技术:调优篇(2)
  • 0815,析构函数,拷贝构造函数,赋值运算符函数
  • 异构数据同步 datax (2)-postgres 写扩展
  • AI小白福音来啦~Flux文生图,支持手部细节,直出精美图像,让你瞬间变高手!
  • 深度学习基础—动量梯度下降法
  • 如何将 ONLYOFFICE 与 Moodle 进行集成,让师生在学习管理平台中协作编辑办公文档
  • uniapp在线下载安装包更新app
  • FastICENet:一种用于航空遥感河流冰图像的实时精确语义分割模型
  • 数值计算引擎:搭建远程容器开发环境
  • 【数据结构】关于冒泡排序,选择排序,插入排序,希尔排序,堆排序你到底了解多少???(超详解)
  • 蒟蒻的尊严被打得一败涂地17
  • QT翻金币小游戏(含音频图片文件资源)
  • 探索数字媒体产业园区的未来之路
  • 每日OJ_牛客_反转部分单向链表
  • 二叉树详解(1)
  • [星瞳科技]OpenMV有哪些合适的配件?
  • 【网络】UDP和TCP之间的差别和回显服务器
  • VSCode插件离线安装
  • 负载均衡详解