mysql - 如何使用 group by 返回最近的值

标签 mysql

我有这个问题:

SELECT history.trackid, tracklist.artist, tracklist.event, tracklist.data, history.date
FROM history JOIN tracklist ON history.trackid=tracklist.trackid 
GROUP BY trackid 
ORDER BY history.date DESC

但是当我按历史分组时,我想返回最近的trackid(到date)。

尝试使用 GROUP BYORDER BY DESC,但不是最新的。我哪里错了?

最佳答案

之所以没有按最近排序,是因为 GROUP BY 创建了一个聚合结果。你可以试试:

SELECT   h.trackid, t.artist, t.event, t.data
FROM     history AS h
  JOIN   tracklist AS t
    ON   h.trackid = t.trackid 
GROUP BY h.trackid 
ORDER BY MAX(h.date) DESC

因为您已经在聚合结果,所以 MAX(history.date) 应该返回每个组的最大(或最近)日期。

关于mysql - 如何使用 group by 返回最近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5819989/

相关文章:

php - 当我在 laravel 的 View 页面上调用 foreach 循环时,它不显示数据

mysql - 在 MySQL 中使用 sequelize 自动递增 id

mysql - 删除多行

mysql - 每条超过 3 个字符的记录在第三个字符后添加一个小数点

mysql - 从我的数据库中获取营业额、收入、总支出,并按年月进行分组

php - 要按 fetchAll 组中的一个变量进行分类

php - Silex 和 Doctrine mysql : how to return results from select all

mysql - 如何配置/设计一个每15分钟插入30,000次的表?

php - 订单 :schema-tool:create - Access denied

mysql - 在 Mac OS X Lion 服务器上安装 MySQL?