学生表t,字段学生id(sid)姓名(name),成绩表x,字段成绩id(scid)课程id(cid)学生id(sid)分数id(sc_val),课程表s,字段课程id(cid)课程名(cname),查询每位学生语文数学外语三门课程成绩的sql
时间: 2023-07-20 22:20:01 浏览: 59
可以使用以下 SQL 查询每位学生语文数学外语三门课程成绩:
```
SELECT t.sid, t.name,
MAX(CASE WHEN s.cname = '语文' THEN x.sc_val ELSE NULL END) AS '语文',
MAX(CASE WHEN s.cname = '数学' THEN x.sc_val ELSE NULL END) AS '数学',
MAX(CASE WHEN s.cname = '外语' THEN x.sc_val ELSE NULL END) AS '外语'
FROM t
INNER JOIN x ON t.sid = x.sid
INNER JOIN s ON x.cid = s.cid
GROUP BY t.sid, t.name;
```
这个查询使用了 `INNER JOIN` 将学生表、成绩表和课程表联结起来,然后使用 `CASE` 语句筛选出每位学生的语文、数学和外语成绩。最后按照学生的编号和姓名进行分组,得到每位学生语文数学外语三门课程成绩的结果。
相关问题
学生表(t_students)有字段:学生id(SID),姓名(SNAME),成绩表(t_scores)有字段:成绩id(SCID),课程id(CID)学生id(SID)分数(SC_VAL),课程表(t_corses)有字段:课程id(CID),课程名(CNAME),要求写出查询每个学生的总分数,排名的SQL,结果列为学生id,姓名,总分数,排名
好的,以下是查询每个学生的总分数,排名的SQL语句:
```
SELECT t_students.SID, t_students.SNAME, SUM(t_scores.SC_VAL) AS total_score,
(SELECT COUNT(DISTINCT total_scores.total_score)
FROM (SELECT SUM(SC_VAL) AS total_score
FROM t_scores GROUP BY SID) AS total_scores
WHERE total_scores.total_score >= SUM(t_scores.SC_VAL)) AS rank
FROM t_students
JOIN t_scores ON t_students.SID = t_scores.SID
GROUP BY t_students.SID, t_students.SNAME
ORDER BY total_score DESC;
```
解释一下这个SQL语句:
1. 首先使用了三张表的 JOIN 操作,将学生表、成绩表、课程表关联起来。
2. 使用了 SUM 函数计算每个学生的总分数,并在 SELECT 语句中给这个总分数起了个别名 total_score。
3. 在 SELECT 语句中使用了子查询,使用 COUNT 函数计算每个学生的排名。子查询中先计算出每个学生的总分数(使用了内部的 GROUP BY 语句),然后对这些总分数去重计算数量,就可以得到总分数排名。
4. 最后按照总分数降序排序,得到每个学生的总分数和排名。
希望对你有所帮助!
編气 selest 语句,便用敢套子查询在子生 表student.课程表course,班級表schoolgless 和成绩表 score 中查询百分制成绩高于 乎均成绩的学生学号、名、班级名称、课程名称、成绩。要來显示的成绩按照由高到假排序
好的,以下是SQL语句实现查询:
```sql
SELECT s.sid, s.sname, sg.sname, c.cname, sc.score
FROM student s, schoolclass sg, course c, score sc,
(SELECT AVG(score) AS avg_score, cno, sno
FROM score
GROUP BY cno, sno
HAVING AVG(score) > (SELECT AVG(score) FROM score)) t
WHERE s.sid = sc.sno AND sg.sid = s.scid AND c.cid = sc.cno
AND t.cno = sc.cno AND t.sno = sc.sno
ORDER BY sc.score DESC;
```
其中,子查询使用了AVG函数计算出每个学生每门课程的平均成绩,然后和全局平均成绩比较筛选出符合条件的学生课程成绩。最后按照成绩从高到低排序输出。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)