LeetCode MySQL 1412. 查找成绩处于中游的学生

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

表: Student

+---------------------+---------+
| Column Name         | Type    |
+---------------------+---------+
| student_id          | int     |
| student_name        | varchar |
+---------------------+---------+
student_id 是该表主键.
student_name 学生名字.

表: Exam

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| exam_id       | int     |
| student_id    | int     |
| score         | int     |
+---------------+---------+
(exam_id, student_id) 是该表主键.
学生 student_id 在测验 exam_id 中得分为 score.

成绩处于中游的学生是指至少参加了一次测验, 且得分既不是最高分不是最低分的学生。

写一个 SQL 语句,找出在所有测验中都处于中游的学生 (student_id, student_name)。

不要返回从来没有参加过测验的学生。返回结果表按照 student_id 排序。

查询结果格式如下。

Student 表:
+-------------+---------------+
| student_id  | student_name  |
+-------------+---------------+
| 1           | Daniel        |
| 2           | Jade          |
| 3           | Stella        |
| 4           | Jonathan      |
| 5           | Will          |
+-------------+---------------+Exam 表:
+------------+--------------+-----------+
| exam_id    | student_id   | score     |
+------------+--------------+-----------+
| 10         |     1        |    70     |
| 10         |     2        |    80     |
| 10         |     3        |    90     |
| 20         |     1        |    80     |
| 30         |     1        |    70     |
| 30         |     3        |    80     |
| 30         |     4        |    90     |
| 40         |     1        |    60     |
| 40         |     2        |    70     |
| 40         |     4        |    80     |
+------------+--------------+-----------+Result 表:
+-------------+---------------+
| student_id  | student_name  |
+-------------+---------------+
| 2           | Jade          |
+-------------+---------------+对于测验 1: 学生 13 分别获得了最低分和最高分。
对于测验 2: 学生 1 既获得了最高分, 也获得了最低分。
对于测验 34: 学生 14 分别获得了最低分和最高分。
学生 25 没有在任一场测验中获得了最高分或者最低分。
因为学生 5 从来没有参加过任何测验, 所以他被排除于结果表。
由此, 我们仅仅返回学生 2 的信息。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-the-quiet-students-in-all-exams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

# Write your MySQL query statement below
select student_id, student_name
from 
(select distinct student_idfrom Examwhere student_id not in(select distinct student_idfrom Exam e left join(	# 考试最高、最低分 select exam_id, max(score) maxs, min(score) minsfrom Examgroup by exam_id) tusing(exam_id)where score = maxs or score = mins # 分数等于最高的或者最低的学生)
) t 
left join Student
using(student_id)
order by student_id

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode MySQL 618. 学生地理信息报告(row_number)

文章目录1. 题目2. 解题1. 题目 一所美国大学有来自亚洲、欧洲和美洲的学生,他们的地理信息存放在如下 student 表中。 | name | continent | |--------|-----------| | Jack | America | | Pascal | Europe | | Xi | Asia | | Jane | Americ…

java非必填字段跳过校验,avalon2表单验证,非必填字段在不填写的时候不能通过验证...

avalon2表单验证,非必填字段在不填写的时候不能通过验证代码var vm avalon.define({$id: "validate1",aaa : "",validate: {onError: function(reasons) {reasons.forEach(function(reason) {console.log(reason.getMessage())})},onValidateAll: functio…

jQuery心得5--jQuery深入了解串讲1

1.CSS-DOM 操作 获取和设置元素的样式属性: css()。 获取和设置元素透明度: opacity 属性(css 的一个属性)。 获取和设置元素高度, 宽度: height(), width(). 在设置值时, 若只传递数字, 则默认单位是 px. 如需要使用其他单位则需传递一个字符串, 例如 $(“p:first”).height(“…

LeetCode MySQL 1225. 报告系统状态的连续日期(date_sub + over)

文章目录1. 题目2. 解题1. 题目 Table: Failed ----------------------- | Column Name | Type | ----------------------- | fail_date | date | ----------------------- 该表主键为 fail_date。 该表包含失败任务的天数.Table: Succeeded --------------------…

LeetCode MySQL 1369. 获取最近第二次的活动(over窗口函数)

文章目录1. 题目2. 解题1. 题目 表: UserActivity ------------------------ | Column Name | Type | ------------------------ | username | varchar | | activity | varchar | | startDate | Date | | endDate | Date | -----------------…

侧边导航栏的实现

F:\java\c侧边栏\侧边菜单栏\MySlidingMenu转载于:https://www.cnblogs.com/ct732003684/archive/2013/03/24/2979416.html

LeetCode MySQL 569. 员工薪水中位数(over窗口函数)

文章目录1. 题目2. 解题1. 题目 Employee 表包含所有员工。Employee 表有三列:员工Id,公司名和薪水。 ------------------------- |Id | Company | Salary | ------------------------- |1 | A | 2341 | |2 | A | 341 …

【IEnumerable】扩展方法的使用 C#

直接进入主题吧... IEnumerable : 公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。 好吧,迭代,我就理解成循环,这些名词真晦涩,没意思 今天看的是 Using Extension Methods ,使用"扩展方法…

LeetCode MySQL 571. 给定数字的频率查询中位数

文章目录1. 题目2. 解题1. 题目 Numbers 表保存数字的值及其频率。 ----------------------- | Number | Frequency | -----------------------| | 0 | 7 | | 1 | 1 | | 2 | 3 | | 3 | 1 | -------…

LeetCode 632. 最小区间(排序+滑动窗口)

文章目录1. 题目2. 解题1. 题目 你有 k 个升序排列的整数数组。 找到一个最小区间&#xff0c;使得 k 个列表中的每个列表至少有一个数包含在其中。 我们定义如果 b-a < d-c 或者在 b-a d-c 时 a < c&#xff0c;则区间 [a,b] 比 [c,d] 小。 示例 1: 输入:[[4,10,15,…

dz论坛php.ini设置,Discuz!X1.5至3.2论坛Win主机与Linux主机伪静态设置方法

用discuz x1.5至3.2的程序搭建的一个论坛&#xff0c;DZ论坛win主机与linux主机伪静态规则的设置方法&#xff01;Windows主机设置方法&#xff1a;1.建立一个名为 httpd.ini 的文件&#xff0c;可以先在电脑上面新建一个文本&#xff0c;然后将下面的这些代码复制到本文里面&a…

LeetCode MySQL 1194. 锦标赛优胜者

文章目录1. 题目2. 解题1. 题目 Players 玩家表 -------------------- | Column Name | Type | -------------------- | player_id | int | | group_id | int | -------------------- 玩家 ID 是此表的主键。 此表的每一行表示每个玩家的组。Matches 赛事表 -----…

php 管理员表和用户表,求discuz的管理员数据表和用户数据表结构

magicmaster07-23 09:35等级3楼不想装mysql&#xff0c;PHP&#xff0c;还有那种phpadmin只要了解一下用户表结构&#xff0c;用注入删掉一个版主&#xff0c;呵呵discuz是怎么把数据表转成向量的?52juanjuan07-23 09:46等级4楼你可以把它的系统与现在运行的网址给各位去说说。…

LeetCode MySQL 1097. 游戏玩法分析 V

文章目录1. 题目2. 解题1. 题目 Activity 活动记录表 ----------------------- | Column Name | Type | ----------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | ---------------------…

PCA主成分分析

首先可以先阅读这一篇文档。 http://wenku.baidu.com/view/4df2c1d276a20029bd642d76.html 基本的算法和原理在上面的文档内已经写得很详细了&#xff0c;总结一下PCA的数学模型吧&#xff1a; 第一种求法&#xff1a; 易知A是对称阵&#xff0c;所以可以对角化 因为P是要求出来…

oracle xe 最大连接数,解决Oracle XE报错ORA-12516(Oracle回话数超出限制)

本地安装的OracleXEUniv—oracle特别版&#xff0c;免费用户可以自由使用&#xff0c;但有连接数量和存储限制。最近遇到一个问题&#xff0c;当我的SSM项目连接本地数据库oracleXE后&#xff0c;我的navicat再连接时就会报错ORA-12516&#xff0c;就是oracle的会话数超出了限制…

LeetCode MySQL 579. 查询员工的累计薪水(over(rows n preceding)选取窗口1+前n条)

文章目录1. 题目2. 解题1. 题目 Employee 表保存了一年内的薪水信息。 请你编写 SQL 语句&#xff0c;对于每个员工&#xff0c;查询他除最近一个月&#xff08;即最大月&#xff09;之外&#xff0c;剩下每个月的近三个月的累计薪水&#xff08;不足三个月也要计算&#xff…

LeetCode MySQL 615. 平均工资:部门与公司比较(over窗口函数)

文章目录1. 题目2. 解题1. 题目 给如下两个表&#xff0c;写一个查询语句&#xff0c;求出在每一个工资发放日&#xff0c;每个部门的平均工资与公司的平均工资的比较结果 &#xff08;高 / 低 / 相同&#xff09;。 表&#xff1a; salary | id | employee_id | amount | p…

LeetCode MySQL 1127. 用户购买平台 *

文章目录1. 题目2. 解题1. 题目 支出表: Spending ---------------------- | Column Name | Type | ---------------------- | user_id | int | | spend_date | date | | platform | enum | | amount | int | ---------------------- 这张表记…

Example3_1

import java.util.*;public class Example3_1{ public static void main(String args[]){ Scanner readernew Scanner(System.in); System.out.println("输入待移位的int型整数:"); int xreader.nextInt(); System.out.println("输入移位量:"); int n…