我正在使用如下的示例表。一个数据集有多个组,每次对表进行写入时,数据集的RunNumber沿着每个组的数据和总数都会增加。每个数据集/组组合通常有多行,示例如下:
| 集团|数据集|共计| Total |
| - -----|- -----|- -----| ------------ |
| 第一组|数据集A|十个| 10 |
| 第一组|数据集A|二十个| 20 |
| 第一组|数据集A|三十| 30 |
| 组2|数据集A|十五| 15 |
| 第一组|数据集B| 5个| 5 |
| 组2|数据集B|十个| 10 |
| 第三组|数据集A|三十| 30 |
| 第三组|数据集A|三十| 30 |
| 第一组|数据集C|十五| 15 |
| 组2|数据集C|五十| 50 |
| 组2|数据集C|七十| 70 |
| 组2|数据集C|九十| 90 |
我想做的是对于每个Dataset和Group的组合都是必不可少的,返回给定Dataset/Group组合中具有max(RunNumber)的行的所有数据。例如,上面的示例将返回以下内容:
| 集团|数据集|共计| Total |
| - -----|- -----|- -----| ------------ |
| 第一组|数据集A|三十| 30 |
| 组2|数据集A|十五| 15 |
| 第一组|数据集B| 5个| 5 |
| 组2|数据集B|十个| 10 |
| 第三组|数据集A|三十| 30 |
| 第一组|数据集C|十五| 15 |
| 组2|数据集C|七十| 70 |
| 组2|数据集C|九十| 90 |
在Dataset/Groups匹配的情况下,所有行都保留该给定组合的最大RunNumber。现在,我将其分为两个单独的查询,首先查询所有不同的Dataset/Group组合的max(RunNumber),然后对所有匹配项执行select *。任何帮助将不胜感激,提前感谢!
1条答案
按热度按时间rxztt3cl1#
在MySQL 5.x中,你可以使用子查询。
测试 *db<>fiddle here *
备选方案