按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分

MySQL的写法:

SELECT p.学生ID,p.数据库,p.企业管理,p.英语,p.有效课程数,ROUND(p.总分/(CASE WHEN p.有效课程数 = 0 THEN 1 ELSE p.有效课程数 END)) 有效平均分
FROM
(SELECT  t.学生ID 学生ID,
      t.数据库 数据库,
        t.企业管理 企业管理,
         t.英语 英语,
       (CASE WHEN t.数据库 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.企业管理 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.英语 IS NULL THEN 0 ELSE 1 END) 有效课程数,
      IFNULL(t.数据库,0)+IFNULL(t.企业管理,0)+IFNULL(t.英语,0) 总分
FROM
     (SELECT stu.sid 学生ID, s.c 数据库,q.c 企业管理,y.c 英语
      FROM student stu
          LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName =‘数据库‘) s ON stu.sid=s.n
          LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName =‘企业管理‘) q ON stu.sid=q.n
          LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName =‘英语‘) Y ON stu.sid=y.n )t
)p
ORDER BY 有效平均分 DESC;

MySQL判断为null,写法为is null,而不是  t.数据库 = NULL

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值

原文地址:https://www.cnblogs.com/zizhuo/p/10325247.html

时间: 2024-12-15 05:07:10

按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分的相关文章

先按成绩由高到低,相等则按年龄由低到高

class Studentx implements Comparable<Studentx> {     private String name;     private int age;     private float score;     public Studentx(String name, int age, float score) {         this.name = name;         this.age = age;         this.score = s

安卓开发前后台通信,从数据库中取数据并在前台以表格形式显示,以json格式传输

最近做了一个Android开发小demo,主要功能是在手机的ActionBar中的搜索栏,根据用户输入的名字从后台(java+Tomcat)数据库中取出该名字对应的一系列信息,然后通过json形式传到前台,并用表格的形式显示到前台. 跟大家分享一下,并且列出几个比较坑的点.但是只是列出了java文件和layout中的xml文件,drawable以及bean类没有列 涉及的知识点主要有: 利用HttpUrlConnection进行通信 数据库相关操作 利用json传输数据 后台代码的mvc模式 A

Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台

1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台: 分析: A: 定义学生类    B: 创建一个TreeSet集合       C: 总分从高到底如何实现呢?        D: 键盘录入5个学生信息       E: 遍历TreeSet集合 2. 代码示例: (1)Student.java: 1 package cn.itcast_08; 2 3 public class Student { 4 // 姓名 5 private String na

写程序完成输入学生学号,姓名,以及成绩信息,并由高到低排序

要求:写程序完成输入学生学号,姓名,以及成绩信息,根据学生成绩由高到低排序. #include <stdio.h>#include <string.h>typedef struct student_score{ int id; char name[20]; int score; }STU;  //定义结构体 int main(int argc, const char *argv[]){ int i,j; int num; STU tmp,stu[100]; printf("

按各科平均成绩和及格率的百分数,按及格率高到低的顺序排序

sql查询  按各科平均成绩和及格率的百分数,按及格率高到低的顺序排序,显示(课程号.平均分.及格率) SELECT SC.COURSE_NO,ROUND(AVG(CORE),2),(SUM(CASE WHEN CORE BETWEEN 60 AND 100 THEN 1 ELSE 0 END)/COUNT(*))*100||'%' 及格率 FROM HAND_STUDENT_CORE SC GROUP BY SC.COURSE_NO

键盘录入多名学生的信息: 格式:姓名,数学成绩,语文成绩,英文成绩,按总分由高到低 将学生的信息进行排列到文件中

主函数类: package cn.io; import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Set; public class iosort { /** * @param args * @throws IOException */ /* *

键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件

1.先写一个Student类 public class Student { private String name; private int chinese; private int math; private int english; public Student() { super(); } public Student(String name, int chinese, int math, int english) { this.name = name; this.chinese = ch

java编程一个可以 进行多个选择题测验成绩(从高到低依次输出学生下标和成绩(可以重复))

成绩可重复,从高到低输出,不会重复输出 public class GradeExam { public static void main(String[] args) { char[][] answers = { {'A','B','A','C','C','D','E','E','A','D'}, {'D','B','A','B','C','A','E','E','A','D'}, {'E','D','D','A','C','B','E','E','A','D'}, {'C','B','A','

高吞吐低延迟Java应用的垃圾回收优化

原文链接: linkedin 翻译: ImportNew.com- hejiani译文链接: http://www.importnew.com/11336.html 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经常用到的一个功能是了解动态信息——不断更新的专业活动和内容的列表.动态信息在LinkedIn随处可见,包括公司页面,学校页面以及最重要的主页.基础动态信息数据平台为我们的经济