注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

融智技术学院

融智技术学院163分站,为广大好友提供更多的帮助

 
 
 

日志

 
 

【数据库每日一问】在SQL选择行时使用MAX(列值)函数,另一列使用DISTINCT??  

2014-03-18 09:35:50|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

问:我的数据表如下所示

  • id  home  datetime     player   resource
  • ---|-----|------------|--------|---------
  • 1  | 10  | 04/03/2009 | john   | 399
  • 2  | 11  | 04/03/2009 | juliet | 244
  • 5  | 12  | 04/03/2009 | borat  | 555
  • 3  | 10  | 03/03/2009 | john   | 300
  • 4  | 11  | 03/03/2009 | juliet | 200
  • 6  | 12  | 03/03/2009 | borat  | 500
  • 7  | 13  | 24/12/2008 | borat  | 600
  • 8  | 13  | 01/01/2009 | borat  | 700

我需要选择每个不同的“home”找出“datetime”的最大值。

结果将是:

  • id  home  datetime     player   resource
  • ---|-----|------------|--------|---------
  • 1  | 10  | 04/03/2009 | john   | 399
  • 2  | 11  | 04/03/2009 | juliet | 244
  • 5  | 12  | 04/03/2009 | borat  | 555
  • 8  | 13  | 01/01/2009 | borat  | 700

 

我尝试的:

  • // 1 ..by the MySQL manual:
  •  
  • SELECT DISTINCT home, id, datetime as dt, player, resource
  •     FROM topten t1
  •     WHERE datetime = (SELECT MAX(t2.datetime) FROM topten t2
  •         GROUP BY home )
  • GROUP BY datetime
  • ORDER BY datetime DESC

并不正确。结果集有130行,尽管数据库包含187。结果包括“home”的一些重复值。

 

  • // 2 ..join

 

  • SELECT s1.id, s1.home, s1.datetime, s1.player, s1.resource
  • FROM topten s1 JOIN
  • (SELECT id, MAX(datetime) AS dt
  •   FROM topten
  •   GROUP BY id) AS s2
  •   ON s1.id = s2.id
  •   ORDER BY datetime

 

不对. 给出所有的记录

  • // 3 ..something exotic:

 

各种结果。

 

答:

你是如此接近正确的答案!所有您需要做的是选择home和它的最大日期时间,然后连接查询返回所有字段:

  • SELECT tt.*
  • FROM topten tt
  • INNER JOIN
  •     (
  •     SELECT home, MAX(datetime) AS MaxDateTime
  •     FROM topten
  •     GROUP BY home
  •     ) groupedtt ON tt.home = groupedtt.home AND tt.datetime = groupedtt.MaxDateTime
  评论这张
 
阅读(6)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017