mysql> select*from score; +-------------+--------+-------+-------+ | S_no | C_no | daily | final | +-------------+--------+-------+-------+ | 18122221320 | a01564 | 88 | 93 | | 18122221320 | c06108 | 92 | 90 | | 18122221320 | c08123 | 85 | 95 | | 18122221321 | c06108 | 70 | 82 | | 18122221321 | c08123 | 85 | 94 | | 18122221322 | a01327 | 53 | 50 | | 18122221322 | a01564 | 64 | 50 | | 18122221322 | c08123 | 60 | 64 | | 18122221323 | a01564 | 88 | 84 | | 18122221323 | c05103 | 85 | 86 | | 18122221324 | c05103 | 95 | 86 | | 18122221324 | c08123 | 77 | 81 | | 18122221325 | c05103 | 88 | 90 | +-------------+--------+-------+-------+ 13 rows in set (0.00 sec) 显示score表中数据,数据符合总评成绩大于85分的学生的学号、课程号和总评成绩,并先按照课程号的升序、再按照总评成绩的降序排列的条件。总评成绩计算公式如下:总评成绩=daily*0.2+final*0.8;

P粉955425168
P粉955425168
2023-10-19 20浏览

要按照课程号的升序和总评成绩的降序排列,并仅显示总评成绩大于85分的学生数据,可以使用以下SQL查询语句:

SELECT S_no, C_no, final
FROM score
WHERE final > 85
ORDER BY C_no ASC, final DESC;

这个查询语句将返回符合条件的学生的学号(S_no)、课程号(C_no)和总评成绩(final)。它使用了WHERE子句来筛选出总评成绩大于85分的学生数据,并使用ORDER BY子句按照课程号升序和总评成绩降序排列结果。

请注意,如果表中存在多个学生的总评成绩相同并且都大于85分,则这些学生将被视为具有相同的排名。因此,如果需要进一步按总评成绩进行降序排序,可以使用多个ORDER BY子句,如:

SELECT S_no, C_no, final
FROM score
WHERE final > 85
ORDER BY C_no ASC, final DESC, S_no DESC;

这样,在总评成绩相同的情况下,学生将根据学号(S_no)进行降序排列。请根据实际情况进行调整。

php中文网 免责声明:以上内容除特别注明外均来源于网友提问,php中文网回答,权益归原著者所有;