sql-50练习题16-20

sql-50练习题16-20

  • 前言
  • 数据库表结构介绍
    • 学生表
    • 课程表
    • 成绩表
    • 教师表
  • 1-6 检索"01"课程分数小于60,按分数降序排列的学生信息
  • 1-7 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
  • 1-8 查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
  • 1-9 查询学生的总成绩并进行排名
  • 2-0 查询学生的总成绩并进行排名

前言

sql真的非常灵活,一个题目可能有很多很多种解法,我记录的只是我自己的一个解题思路,如果大家有更好的不同解法欢迎在评论区一起探讨
ps:有些题可能解法会重复,比如求大于,我们下一个题可能是求小于,大家如果第一遍没有做出来,看了我写的之后有了思路,可以试一下反面的解法。

数据库表结构介绍

学生表

在这里插入图片描述

课程表

在这里插入图片描述

成绩表

在这里插入图片描述

教师表

在这里插入图片描述

1-6 检索"01"课程分数小于60,按分数降序排列的学生信息

SELECTa.*, b.c_id,b.s_score
FROMstudent a,score b
WHEREa.s_id = b.s_id
AND b.c_id = '01'
AND b.s_score < 60
ORDER BYb.s_score DESC;

结果如下:
在这里插入图片描述

1-7 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

SELECTa.s_id,(SELECTs_scoreFROMscoreWHEREs_id = a.s_idAND c_id = '01') AS 语文,(SELECTs_scoreFROMscoreWHEREs_id = a.s_idAND c_id = '02') AS 数学,(SELECTs_scoreFROMscoreWHEREs_id = a.s_idAND c_id = '03') AS 英语,round(avg(s_score), 2) AS 平均分
FROMscore a
GROUP BYa.s_id
ORDER BY平均分 DESC;

结果如下:
在这里插入图片描述

1-8 查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率

– round 函数主要是进行数值的小数点保留
– 1、round(x,d) x指要处理的数,d是指保留几位小数。这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;
– 2、round(x) ,其实就是round(x,0),也就是默认d为0;

SELECTa.c_id,b.c_name,MAX(s_score),MIN(s_score),AVG(s_score),ROUND(100 * (SUM(CASEWHEN a.s_score >= 60AND a.s_score <= 90 THEN1ELSE0END) / SUM(CASEWHEN a.s_score THEN1ELSE0END)),2) AS 及格率,ROUND(100 * (SUM(CASEWHEN a.s_score >= 70AND a.s_score <= 80 THEN1ELSE0END) / SUM(CASEWHEN a.s_score THEN1ELSE0END)),2) AS 中等率,ROUND(100 * (SUM(CASEWHEN a.s_score >= 80AND a.s_score <= 90 THEN1ELSE0END) / SUM(CASEWHEN a.s_score THEN1ELSE0END)),2) AS 优良率,ROUND(100 * (SUM(CASEWHEN a.s_score >= 90 THEN1ELSE0END) / SUM(CASEWHEN a.s_score THEN1ELSE0END)),2) AS 优秀率
FROMscore a
LEFT JOIN course b ON a.c_id = b.c_id
GROUP BYa.c_id

结果如下:
在这里插入图片描述

1-9 查询学生的总成绩并进行排名

SELECT b.*, a.c_id, a.s_score, (SELECT COUNT(DISTINCT a2.s_score) FROM score a2 WHERE a2.c_id = a.c_id AND a2.s_score >= a.s_score) AS rk
FROM score a
JOIN student b ON a.s_id = b.s_id;

结果如下:
在这里插入图片描述

2-0 查询学生的总成绩并进行排名

SELECTsuma.*, (SELECTcount(avgscore)FROM(SELECTa.s_id,avg(a.s_score) avgscoreFROMscore aGROUP BYa.s_id) sumbWHEREsuma.avgscore < sumb.avgscore) + 1 rk
FROM(SELECTa.s_id,avg(a.s_score) avgscoreFROMscore aGROUP BYa.s_id) suma
ORDER BYrk ASC

结果如下:
在这里插入图片描述

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

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

相关文章

c++-set和map

文章目录 前言一、set容器1、set容器介绍2、set的使用2.1 set的构造函数和迭代器2.2 set的容量2.3 set修改操作 3、multiset容器3.1 multiset容器介绍3.2 multiset容器使用 二、map容器1、map容器介绍2、map容器使用2.1 map的构造函数与迭代器2.2 map中元素的修改2.3 map的容量…

Java修仙传之Flink篇

大道三千:最近我修Flink 目前个人理解&#xff1a; 处理有界&#xff0c;无界流的工具 FLINK&#xff1a; FLINK定义&#xff1a; Flink特点 Flink分层API 流的定义 有界数据流&#xff08;批处理&#xff09;&#xff1a; 有界流&#xff1a;数据结束了&#xff0c;程序也…

正则表达式包含数字和字符匹配

至少6位。 pattern : (?.[0-9])(?.[A-Za-z])[0-9A-Za-z]{6,} 正则表达式中的“?”是一个正向预查字符&#xff0c;它的意思是匹配前一个字符出现的最少一次。具体来说&#xff0c;当一个匹配出现时&#xff0c;它会检查前一个字符是否符合要求&#xff0c;如果符合&#xf…

【Java 进阶篇】深入理解 Java Response:从基础到高级

HTTP响应&#xff08;Response&#xff09;是Web开发中的一个关键概念&#xff0c;它是服务器向客户端&#xff08;通常是浏览器&#xff09;返回数据的方式。理解如何在Java中处理和构建HTTP响应是开发Web应用程序的重要一部分。本文将从基础知识到高级技巧&#xff0c;详细介…

ardupilot开发 --- 深度相机 篇

1. ZED 相机 1.1 规格 2. RealSense 需要机载计算机作为中介&#xff01;&#xff01;

分布式锁-Redis红锁解决方案

一 分布式锁的概念 1&#xff1a;概念 分布式锁&#xff08;多服务共享锁&#xff09; 在分布式的部署环境下&#xff0c;通过锁机制来让多客户端互斥的对共享资源进行访问控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共…

使用 Authing 快速实现一套类似 OpenAI 的认证、API Key 商业权益授权机制

如果你有经常使用 OpenAI 或者 HuggingFace 这一类面向开发者的 SaaS 服务&#xff0c;对于 API Key 肯定不会陌生。我们在使用这些服务时&#xff0c;通常都会在其平台上面创建一套 API Key&#xff0c;之后我们才能在代码中通过这一串 API key 访问其服务&#xff1b;同时&am…

处理SAP资产折旧AFAB 过账报错:“科目 8019010100 要求一个成本会计分配”

会计在进行资产折旧AFAB时 报错如下所示&#xff1a; 原因分析&#xff1a; 折旧时没有把资产设置得成本中心带到过账凭证的成本中心字段中去。而资产中已经维护了成本中心了。 所以要在资产过账的科目分配中设置一下路径如下&#xff1a; 或者TCODE&#xff1a;ACSET科目设置这…

Jmeter(二十一):jmeter导入和导出接口的处理(超详细)

JMeter测试导入接口 利用Jmeter测试上传文件&#xff0c;首先可根据接口文档或者fiddler抓包分析文件上传的接口&#xff1b;如下图&#xff1a; 以下是我通过fiddler所截取的文件上传的接口 1、填写导入接口的信息 查看文件上传栏下的填写信息&#xff1a; 文件名称&#x…

RT-Thread 7. RT-Thread Studio ENV修改MCU型号

1. 修改MCU型号 2.在ENV界面输入 scons -c scons --dist3. dist下为更新后完整源代码 4.导入RT-Thread Studio 发现GD32F330已经生效了。 5. 自己编写startup_gd32f3x0.S&#xff0c;准确性待验证 ;/* ; * Copyright (c) 2006-2021, RT-Thread Development Team ; * ; * SPD…

MySQL主从复制原理

1、MySQL主从复制的三个步骤及其原理图 slave会从master读取binlog来进行数据同步 MySQL复制过程分成三步&#xff1a; 1、master将改变记录到二进制日志&#xff08;binary log&#xff09;。这些记录过程叫做二进制日志事件&#xff0c;binary log events。 2、slave将ma…

WebService与RESTful两种接口风格示例

下面我将分别用WebService&#xff08;SOAP&#xff09;和RESTful API的例子来说明它们是如何工作的。 1. WebService (SOAP) 示例&#xff1a; 假设有一个在线计算器服务&#xff0c;它提供了一个加法操作的SOAP WebService。 SOAP请求&#xff08;客户端到服务器&#xff…

UG\NX二次开发 球坐标到直角坐标的转换

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 JiaLiHuiNaoGui 订阅本专栏,非常感谢。 简介 已知角度θ和ϕ,距离d,求P点坐标。 "> 代码 #include "me.hpp" using namespace NXOpen; using namespace std;void GetP<

MBox肯定会因为回购和销毁将起飞

近期&#xff0c;币安链上的GameFi和元宇宙平台MOBOX宣布推出代币回购和销毁计划&#xff0c;在加密货币市场还处于熊市的现在&#xff0c;消息引起了不少链游打金爱好者和玩家的关注&#xff0c;MOBOX的讨论量也在快速上升。 在近一年多的熊市之中&#xff0c;很多GameFi项目从…

LeetCode:2003. 每棵子树内缺失的最小基因值(C++)

目录 2003. 每棵子树内缺失的最小基因值 题目描述&#xff1a; 实现代码与解析&#xff1a; dfs 启发式合并 原理思路&#xff1a; 2003. 每棵子树内缺失的最小基因值 题目描述&#xff1a; 有一棵根节点为 0 的 家族树 &#xff0c;总共包含 n 个节点&#xff0c;节点编…

【Linux】虚拟机部署与发布J2EE项目(Linux版本)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

前言 近年来&#xff0c;Web开发已经成为计算机科学领域中最热门和多产的领域之一。Python和Vue.js是两个备受欢迎的工具&#xff0c;用于构建现代Web应用程序。在本教程中&#xff0c;我们将探索如何使用这两个工具来创建一个完整的Web项目。我们将完成从安装Python和Vue.js到…

从0到1之微信小程序快速入门(02)

目录 页面导航 - 声明式导航 1. 导航到 tabBar 页面 2. 导航到非 tabBar 页面 3. 后退导航 ​编辑 页面导航 - 编程式导航 页面导航 - 导航传参 页面事件 - 下拉刷新事件 监听下拉刷新事件 停止下拉刷新的效果 页面事件 - 上拉触底事件 监听页面的上拉触底事件 配置…

项目部署之OpenResty

项目部署之OpenResty 1. OpenResty介绍 OpenResty 是一个基于Nginx的高性能Web平台&#xff0c;用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。具备下列特点&#xff1a; 具备Nginx的完整功能基于Lua语言进行扩展&#xff0c;集成了大量精良…

cmake多目录构建初步成功

目录和代码和 首次cmake 多目录构建失败 此文一样&#xff1b; 只有一个CMakeLists.txt&#xff1b; cmake_minimum_required(VERSION 3.10) project(mytest3 VERSION 1.0) include_directories("${PROJECT_SOURCE_DIR}/include") add_executable(mytest3 src/main…