在 MySQL 表中查找每个用户的最新位置

Posted

技术标签:

【中文标题】在 MySQL 表中查找每个用户的最新位置【英文标题】:Find the latest location of each users in a MySQL table 【发布时间】:2014-08-27 10:40:09 【问题描述】:

我有这张表,我想在其中使用 SQL 查询查找每个用户的最新位置。

该表包含 (1) 电子邮件、(2) 时间戳、(3) 位置等列。

所以如果表格是这样的:

email            timestamp    location
user1@email.com  27.08.2014   kitchen
user1@email.com  28.08.2014   livingroom
user1@email.com  29.08.2014   kitchen
user2@email.com  26.08.2014   hallway
user2@email.com  27.08.2014   kitchen

我希望它输出:

email            timestamp    location
user1@email.com  29.08.2014   kitchen
user2@email.com  27.08.2014   kitchen

【问题讨论】:

【参考方案1】:
SELECT yt.* FROM your_table yt
INNER JOIN (
    SELECT
    email, MAX(timestamp) max_ts
    FROM
    your_table 
    GROUP BY email
) sq ON yt.email = sq.email AND yt.timestamp = sq.max_ts
在此处找到更多示例:The Rows Holding the Group-wise Maximum of a Certain Column

【讨论】:

以上是关于在 MySQL 表中查找每个用户的最新位置的主要内容,如果未能解决你的问题,请参考以下文章

优化地理搜索查询

MySQL索引

查找每个位置的前 3 名用户

如何在MySQL中加入查询以根据距离计算和Google地理编码查找WordPress帖子?

使用 MySQL 从点表中查找最近的点

EXCEL函数如何查找数值在工作表中的位置?