牛客网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 小结
相关文章:
牛客网SQL进阶129 :月均完成试卷数不小于3的用户
月均完成试卷数不小于3的用户爱作答的类别_牛客题霸_牛客网 0 问题描述 基于试卷作答记录表exam_record、试卷信息表examination_info ,统计出 “月均完成试卷数”不小于3的用户作答的类别及作答次数,按次数降序输出。 1 数据准备 drop table if exis…...
Astro + Cloudflare Pages 快速搭建个人博客
目录 1 选择 Astro 模板2 使用代码3 修改代码4 上传 Github5 部署 Cloudflare Pages6 后续修改 最近我搭建完了我的个人网站,很多人问是怎么做的,今天就来写一篇教程吧。 全部干货,看完绝对能成功搭建自己的网站!(还不…...
Vue中<style scoped>与<style module>的深入解析与应用
在Vue开发中,样式管理是一个重要的环节。Vue提供了多种方式来帮助开发者更有效地管理组件样式,其中<style scoped>和<style module>是两个非常实用的特性。本文将深入探讨这两个属性的作用、原理以及使用场景,帮助读者更好地理解…...
Qt系列之数据库(二)代码篇
Qt 数据库开发是指在Qt框架下进行数据库操作的开发工作。Qt提供了一套强大的数据库模块,可以方便地与多种数据库进行交互,如SQLite、MySQL、PostgreSQL等。以下是一些关键点和步骤,帮助你进行Qt数据库开发: 1. 安装Qt数据库模块 …...
@RequstParam@PathVariable@RequestBody的区别
文章目录 概述RequestParam:PathVariable:RequestBody: 概述 RequestParam、RequestBody和PathVariable是Spring框架中用于处理HTTP请求参数的注解,它们在处理请求参数的方式、适用场景和请求方法上有所不同。 Reques…...
Maven继承和聚合特性
目录 Maven继承关系 1.继承概念 父POM 子模块 2.继承机制 3.示例 4.继承作用 背景 需求 5.注意事项 Maven聚合关系 1. 定义与概念 2. 实现方式 3. 特性与优势 4. 示例 5. 注意事项 Maven继承关系 1.继承概念 Maven 继承是指在 Maven 的项目中,定义…...
python opencv实时视频输入
要在Python中使用OpenCV进行实时视频输入,可以按照以下步骤进行操作: 首先,需要安装OpenCV库。可以使用pip install opencv-python命令来安装OpenCV。 导入所需的库: import cv2创建一个VideoCapture对象来读取视频输入&#x…...
为什么头文件不能写using namespace
在C中,不建议在头文件中使用using namespace语句,主要有以下几个原因: 命名冲突:当在头文件中使用using namespace时,该命名空间中的所有名字都将被引入到包含该头文件的每个源文件中。这可能导致命名冲突,…...
使用 preloadRouteComponents 提升 Nuxt 应用的性能
title: 使用 preloadRouteComponents 提升 Nuxt 应用的性能 date: 2024/8/19 updated: 2024/8/19 author: cmdragon excerpt: preloadRouteComponents 是提升 Nuxt 应用性能的一个简单而有效的工具。通过在适当的时候预加载路由组件,你可以为用户提供更快速、更流…...
mybatisPlus的@TableLogic逻辑删除注解导致联合索引失效的坑
文章目录 1.问题2.原因3.解决方法3.1 方法13.2 方法2 4. 建索引的几大原则4.1.最左前缀匹配原则,非常重要的原则4.2.和in可以乱序4.3.尽量选择区分度高的列作为索引4.4.索引列不能参与计算,保持列“干净”4.5.尽量的扩展索引,不要新建索引 5.…...
C# 隐式转换和显式转换
在C#中编程语言中,数据类型转换是一个重要的概念,C#提供了两种主要的转换方式:隐式转换和显式转换。理解下这两种转换方式对于编写健壮和可靠的代码至关重要。 隐式转换(Implicit Conversion) 定义 隐式转换是指的是…...
入门网络安全工程师要学习哪些内容
大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。 网络安全工程师是一个概称,学习的东西很多&…...
深入理解 Go 并发原语
1. goroutine 基础知识 1.1 进程 进程(process) 是一个程序的实例,具有某些专用资源,如内存空间、处理器时间、文件句柄(例如,Linux 中的大多数进程都有 stdin、stdout 和 stderr) 和至少一个线程。我们称其为实例&am…...
计算机毕业设计选题推荐-springboot 基于springboot的宠物健康顾问系统
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
数据结构—— 初识二叉树
1.树概念及结构 1.1树的概念 树是由根和子树构成 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 1. 树有…...
2024.08.09校招 实习 内推 面经
地/球🌍 : neituijunsir 交* 流*裙 ,内推/实习/校招汇总表格 1、校招 | 顺丰科技 2025届秋季校园招聘技术专场正式启动(内推) 校招 | 顺丰科技 2025届秋季校园招聘技术专场正式启动(内推) …...
IDEA中设置类和方法的注释
分两步设置: 第一个设置是创建类的时候自动加的注解 第二个设置是快捷键为方法增加的注解 类的时候自动加的注解设置 注释模版 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end /** * Description: TODO * Auth…...
Adobe Premiere Pro 2023-23.6.7.1 解锁版下载与安装教程 (一款专业的视频编辑软件)
前言 Adobe Premiere Pro(简称PR)是一款知名的专业视频编辑软件,数字视频剪辑软件。主要用来编辑视频和音频,可以在RGB和YUV色彩空间中以高达32位色彩的视频分辨率对4K和更高质量的视频文件进行编辑,支持VST音频插件和…...
openGauss 6.0安装过程解除对root用户依赖之gs_preinstall
目录 1.执行前提条件 1.1设置OS参数: 1.2定时任务权限 1.3 修改最大文件描述符 2.切换至omm用户,执行preinstall 3.source环境变量 4.执行gs_install 在给客户部署业务系统时,由于openGauss数据库的预安装过程需要用到root用户执行&am…...
IOS 10 统一颜色管理和适配深色模式
实现分析 像系统那样,给项目中常用的颜色取名字,这里使用扩展语法实现,好处是可以像访问系统颜色那样访问自定义的颜色。 添加依赖 为了能使用16进制的颜色值,这里通过依赖DynamicColor框架来实现 #颜色工具类 #https://githu…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
