首页 > 解决方案 > 用最大和最小标记更新每一行

问题描述

我有一张带有主题和标记的表格。每个主题都有最大和最小标记,我需要用它们的最大和最小标记更新行

主题 分数
数学 95
英文 85
数学 90
英文 56

我需要像下面这样的输出表,每当特定的数学科目出现时,最大值应为 95,最小值应为 90,英语科目也一样

主题 分数 最大标记 最小标记
数学 95 95 90
英文 85 85 56
数学 90 95 90
英文 56 85 56

标签: mysqlsql

解决方案


在旧版本的 MySQL 上,我们可以加入一个子查询,它可以找到每个主题的最小/最大标记值:

SELECT t1.subject, t1.Marks, t2.maxmarks, t2.minmarks
FROM yourTable t1
INNER JOIN
(
    SELECT subject, MIN(Marks) AS minmarks, MAX(Marks) AS maxmarks
    FROM yourTable
    GROUP BY subject
) t2
    ON t2.subject = t1.subject;

推荐阅读