用sql如何查询课程成绩排名呢?

1 、查询“001 ”课程比“002 ”课程成绩高的所有学生的学号: sql SELECT DISTINCT ts1 .stuid FROM tblScore ts1 , tblScore ts2 WHERE ts1 .stuid = ts2 .stuid AND ts1 .courseid = '001 ' AND ts2 .courseid = '002 ' AND ts1 .score > ts2 .score
这就是坑、别信、别这么干。

2 、查询平均成绩大于6 0分的同学的学号和平均成绩: sql SELECT stu.stuid, AVG(score.score) AS avg_score FROM tblStudent stu, tblScore score WHERE stu.stuid = score.stuid GROUP BY stu.stuid HAVING AVG(score.score) > 6 0
3 、查询所有同学的学号、姓名、选课数、总成绩: sql SELECT stu.stuid, stu.stuname, COUNT(score.courseid) AS course_count, SUM(score.score) AS total_score FROM tblStudent stu, tblCourse course, tblScore score WHERE stu.stuid = score.stuid AND course.courseid = score.courseid GROUP BY stu.stuid, stu.stuname ORDER BY stu.stuid
实操提醒:确保表名和字段名准确无误。

请根据要求写出相应的sql语句:查询score表中,语文成绩的最高分?

上周有个客人问我SQL这个事,他说看到这个语句SELECT MAX(chinese) FROM score;就想知道咋用的。
你说的没错,这语句确实能查到score表里语文(chinese)的最高分。

我当年刚学SQL时也懵过,MAX函数是啥一直没搞懂。
后来有个前辈给我举了个例子,就像班里统计最高分,你把所有人的语文分数扔进去,MAX就能自动给你挑出最高的那个。
这个函数用着挺方便的,不用自己写啥复杂的条件。

不过你要注意,score表和chinese列得是你数据库里真有的名字哈。
我之前有个项目,表叫student_info,列叫chinese_score,结果直接用这个语句就出错了,得改对才行。
这个MAX函数对空值是不处理的,如果chinese列有NULL,最高分可能就来自非空的最大值。

你用着放心,这个语句效率也还行,大数据量时可能得优化下。
但一般情况用着绝对够用。