mysql - 用最大和最小标记更新每一行
问题描述
我有一张带有主题和标记的表格。每个主题都有最大和最小标记,我需要用它们的最大和最小标记更新行
主题 | 分数 |
---|---|
数学 | 95 |
英文 | 85 |
数学 | 90 |
英文 | 56 |
我需要像下面这样的输出表,每当特定的数学科目出现时,最大值应为 95,最小值应为 90,英语科目也一样
主题 | 分数 | 最大标记 | 最小标记 |
---|---|---|---|
数学 | 95 | 95 | 90 |
英文 | 85 | 85 | 56 |
数学 | 90 | 95 | 90 |
英文 | 56 | 85 | 56 |
解决方案
在旧版本的 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;
推荐阅读
- reactjs - 检查内部 React 组件的 PropTypes 作为包装器组件的一部分
- c# - 如何在图表下放置一个大图例?
- hyperledger-fabric - Hyperledger Fabric - 无法按照 MagnetoCorp 示例实例化合约
- mysql - mysql 分组限制
- swift - 如何将 NSTextField 值转换为 CGFloat
- vba - VBA 字对齐语法
- c# - System.ComponentModel.Win32Exception (0x80004005):访问被拒绝
- javascript - console.log(document.meta) 元素未定义
- oauth-2.0 - Openid Connect:在依赖方之间共享 id 令牌
- javascript - 如何将输入 id 值存储到另一个页面上的变量中?