一张表,用sql写出数学分数最高和年龄最小的信息
时间: 2023-07-16 10:15:13 浏览: 48
假设表名为student,包含字段name、age、math_score,可以使用以下SQL语句实现:
```
SELECT name, age, math_score
FROM student
ORDER BY math_score DESC, age ASC
LIMIT 1;
```
该语句将按照数学分数从高到低、年龄从小到大的顺序排序,并返回第一行结果,即数学分数最高且年龄最小的学生信息。
相关问题
原表table (姓名,科目,分数) 要求新表为(姓名,语文,数学,外语,总分,平均分) 用sql怎么写
你可以使用以下SQL语句来创建新表并将原表中的数据转换为新表的格式:
```
CREATE TABLE new_table (
姓名 VARCHAR(50),
语文 INT,
数学 INT,
外语 INT,
总分 INT,
平均分 DECIMAL(5,2)
);
INSERT INTO new_table (姓名, 语文, 数学, 外语, 总分, 平均分)
SELECT
姓名,
SUM(CASE WHEN 科目 = '语文' THEN 分数 ELSE 0 END) AS 语文,
SUM(CASE WHEN 科目 = '数学' THEN 分数 ELSE 0 END) AS 数学,
SUM(CASE WHEN 科目 = '外语' THEN 分数 ELSE 0 END) AS 外语,
SUM(分数) AS 总分,
AVG(分数) AS 平均分
FROM 原表
GROUP BY 姓名;
```
请将"原表"替换为你实际的表名,"姓名"、"科目"和"分数"替换为你实际的列名。这个SQL语句将会创建一个新的表"new_table",并将原表中的数据按照姓名进行分组,并计算每个人的语文、数学、外语的总分和平均分,并插入到新表中。
#### 引用[.reference_title]
- *1* [查询每个学生的各科成绩sql语句](https://blog.csdn.net/Java_WuYY/article/details/50956119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [sql 查询出各科成绩、平均成绩,总成绩,根据总成绩分数相同,排名相同](https://blog.csdn.net/qq_32196937/article/details/79632626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
有学生表(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 对学生进行分组,得到每个学生的语文、数学和物理分数。