如何通过 MYSQL 中的另一列选择具有 MAX(列值)、

How can I SELECT rows with MAX(Column value), PARTITION by another column in MYSQL?(如何通过 MYSQL 中的另一列选择具有 MAX(列值)、PARTITION 的行?)
本文介绍了如何通过 MYSQL 中的另一列选择具有 MAX(列值)、PARTITION 的行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的桌子是:

<头>
id日期时间玩家资源
11004/03/2009约翰399
21104/03/2009朱丽叶244
51204/03/2009硼酸555
31003/03/2009约翰300
41103/03/2009朱丽叶200
61203/03/2009硼酸500
71324/12/2008硼酸600
81301/01/2009硼酸700

我需要选择每个不同的 home 保存 datetime 的最大值.

I need to select each distinct home holding the maximum value of datetime.

结果是:

<头>
id日期时间玩家资源
11004/03/2009约翰399
21104/03/2009朱丽叶244
51204/03/2009硼酸555
81301/01/2009硼酸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 的一些重复项.

Doesn't work. Result-set has 130 rows although database holds 187. Result includes some duplicates of 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: 

各种结果.

推荐答案

你们离得这么近!您需要做的就是选择家庭及其最大日期时间,然后在两个字段中加入 topten 表:

You are so close! All you need to do is select BOTH the home and its max date time, then join back to the topten table on BOTH fields:

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

这篇关于如何通过 MYSQL 中的另一列选择具有 MAX(列值)、PARTITION 的行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)