一张表,用sql写出数学分数最高和年龄最小的信息
时间: 2023-07-16 15:15:13 浏览: 115
假设表名为student,包含字段name、age、math_score,可以使用以下SQL语句实现:
```
SELECT name, age, math_score
FROM student
ORDER BY math_score DESC, age ASC
LIMIT 1;
```
该语句将按照数学分数从高到低、年龄从小到大的顺序排序,并返回第一行结果,即数学分数最高且年龄最小的学生信息。
相关问题
根据如下数据表写出SQL语句 学生信息表(student) 学号(id) 姓名(name) 001 张三 李四 003 王五 年龄(age) 16 16 n 学生成绩表(score) 学号(id) 00I 001 002 002 科目 (sub) 语文 数学 语文 数学 分数(sco) 85 95 60 602、请写出SQL,查询每个学生的成绩,查询结果如下:学号(id)姓名(name)科目(age)语文张三张三数学李四语文数学李四00gNULL 分数(sco) 福 001001002 95 60 60 002 王五 NULL
SQL语句如下:
```
SELECT student.id, student.name, score.sub, score.sco
FROM student
LEFT JOIN score
ON student.id = score.id;
```
查询结果如下:
```
学号(id) 姓名(name) 科目(sub) 分数(sco)
001 张三 语文 85
001 张三 数学 95
002 李四 语文 60
002 李四 数学 60
003 王五 NULL NULL
```
有学生表(T_STUDENTS),成绩表(T_SCORES),课程表(T_CORSES),写出查询每个学生语文,数学,物理三门课程的sql,结果列为学生id,姓名,语文分数,数学分数,物理分数
好的,可以使用以下 SQL 查询语句:
```
SELECT
T_STUDENTS.id,
T_STUDENTS.name,
MAX(CASE WHEN T_COURSES.name = '语文' THEN T_SCORES.score ELSE NULL END) AS '语文分数',
MAX(CASE WHEN T_COURSES.name = '数学' THEN T_SCORES.score ELSE NULL END) AS '数学分数',
MAX(CASE WHEN T_COURSES.name = '物理' THEN T_SCORES.score ELSE NULL END) AS '物理分数'
FROM
T_STUDENTS
JOIN T_SCORES ON T_STUDENTS.id = T_SCORES.student_id
JOIN T_COURSES ON T_SCORES.course_id = T_COURSES.id
GROUP BY
T_STUDENTS.id,
T_STUDENTS.name;
```
该查询语句通过联合查询 T_STUDENTS、T_SCORES 和 T_COURSES 表,使用 CASE WHEN 语句将每个学生的三门课程分数分别作为结果列,最终通过 GROUP BY 对学生进行分组,得到每个学生的语文、数学和物理分数。
阅读全文