mysql 尝试仅选择最新时间戳

标签 mysql join timestamp greatest-n-per-group

我正在尝试连接 2 个表并仅选择最新时间戳以及与该最新时间戳关联的字段值

数据表:

设备计数

id  device_name     platform    version     timestamp
1   abc             123         x           2013-12-30
2   abc             123         y           2014-01-01
3   def             345         x           2013-12-30

设备列表

id      device_name     Network     Division    Market
2657    def             a           f           d
2656    abc             a           b           c

期望的结果应该是

device_name     platform    version     network     division    market  timestamp
abc             123         y           a           b           c       2014-01-01
def             345         x           a           f           d       2013-12-30

我使用了以下查询,但没有得到正确的结果

SELECT
device_count.device_name,
device_count.platform,
device_count.version,
Max(device_count.`timestamp`),
device_list.Network,
device_list.Division,
device_list.Market
FROM
device_count
INNER JOIN device_list ON device_count.device_name = device_list.Device_Name
GROUP BY
device_count.device_name,
device_count.platform,
device_count.version,
device_list.Network,
device_list.Division,
device_list.Market

结果

device_name     platform    version     network     division    market  timestamp
abc             123         x           a           b           c       2013-12-30
abc             123         y           a           b           c       2014-01-01
def             345         x           a           f           d       2013-12-30

不应包含第一条记录。我只想要最新时间戳的版本和平台值(记录 id 2)

最佳答案

一种方法是匹配子选择:

SELECT
  device_count.device_name,
  device_count.platform,
  device_count.version,
  device_count.`timestamp`,
  device_list.Network,
  device_list.Division,
  device_list.Market
FROM
  device_count
INNER JOIN 
  device_list 
ON device_count.device_name = device_list.Device_Name
WHERE device_count.`timestamp` = (
    SELECT MAX(dc2.`timestamp`)
    FROM
      device_count AS dc2
    WHERE
      dc2.device_name =  device_count.device_name
    )

关于mysql 尝试仅选择最新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716148/

相关文章:

date - Liferay动态数据列表

php - Laravel 如果数据库表为空

c++ - 每秒获取传感器的值 C++

sql - 选择自己的阵列。 PostgreSQL 9.5

PostgreSQL 时间戳

java - 如何将给定时间(如日期字符串)转换为 13 位时间戳

php - MySQL降序问题

php - 按同一条目对评论进行分组,按日期排序

R-合并两个数据框,但 ID 的值有分号

php - 查询问题,var_dump 说 bool(false)