首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于获取与第二列的最大值成对的列的MySQL查询

用于获取与第二列的最大值成对的列的MySQL查询
EN

Stack Overflow用户
提问于 2011-09-16 02:48:50
回答 2查看 351关注 0票数 0

这是针对MySQL的,但可能有更通用的SQL语句。不过,我并不真的需要它是可移植的。

我有一个这样的表:

代码语言:javascript
复制
| id | site | used | date |
| 1  | A    | 180  | 9/15 |
| 2  | A    | 110  | 9/14 |
| 3  | A    | 90   | 9/13 |
| 4  | B    | 200  | 9/15 |
| 5  | B    | 220  | 9/14 |
| 6  | B    | 270  | 9/13 |
| 7  | C    | 910  | 9/14 |
| 8  | C    | 930  | 9/13 |

描述:每天都会捕获数据,但C站点的最后一次捕获日期是9/14。

如何获得为每个站点捕获单行的结果集,以及该站点的日期的最大可能值?

结果将是:

代码语言:javascript
复制
| id | site | used | date |
| 1  | A    | 180  | 9/15 |
| 4  | B    | 200  | 9/15 |
| 7  | C    | 910  | 9/14 |
EN

回答 2

Stack Overflow用户

发布于 2011-09-16 02:52:19

代码语言:javascript
复制
select t.*
from (
    select site, max(date) as MaxDate
    from MyTable
    group by site
) tm
inner join MyTable t on tm.site = t.site and tm.MaxDate = t.Date

但是,如果有多个站点记录具有相同的日期,则会得到重复的行。

票数 2
EN

Stack Overflow用户

发布于 2011-09-16 02:58:37

代码语言:javascript
复制
SELECT * FROM (
   SELECT * FROM `test` ORDER BY date DESC
) AS t 
GROUP BY `site`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7435891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档