首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >选择每个不同的home持有最大值datetime?

选择每个不同的home持有最大值datetime?

提问于 2017-12-18 14:31:48
回答 2关注 0查看 471

我的表是:

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

我努力了:

代码语言:txt
复制
-- 1 ..by the MySQL manual: 
代码语言:txt
复制
代码语言:txt
复制
SELECT DISTINCT home, id, datetime as dt, player, resource
代码语言:txt
复制
    FROM topten t1
代码语言:txt
复制
    WHERE datetime = (SELECT MAX(t2.datetime) FROM topten t2
代码语言:txt
复制
        GROUP BY home )
代码语言:txt
复制
GROUP BY datetime
代码语言:txt
复制
ORDER BY datetime DESC

不起作用。结果集有130行,尽管数据库保存了187.结果包括一些重复的home。

-- 2 ..join

代码语言:txt
复制
代码语言:txt
复制
SELECT s1.id, s1.home, s1.datetime, s1.player, s1.resource
代码语言:txt
复制
FROM topten s1 JOIN
代码语言:txt
复制
(SELECT id, MAX(datetime) AS dt
代码语言:txt
复制
  FROM topten
代码语言:txt
复制
  GROUP BY id) AS s2
代码语言:txt
复制
  ON s1.id = s2.id
代码语言:txt
复制
  ORDER BY datetime 

不。给所有的记录。

-- 3 ..something exotic:

有不同的结果。

相关文章

相似问题

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