mysql - 获取最新的行

标签 mysql group-by

我正在尝试获取具有指定“拉”值的最新记录,然后按 imei 号码分组。但是我得到了错误的输出,时间与我数据库中的时间不匹配

这是我的标签。

    IMEI              TIME                      STATUS
    354851057191551   2013-06-25 10:11:30       pull getrestbyimei
    354851057191551   2013-06-25 10:10:36       Push getrestbyimei
    354851057234971   2013-06-25 10:10:34       Push getbookings
    351895053436612   2013-06-25 10:10:32       pull getrestbyimei
    351895053436612   2013-06-25 10:10:31       pull getrestbyimei

期望的输出:

        IMEI              TIME                      STATUS
        354851057191551   2013-06-25 10:11:30       pull getrestbyimei
        351895053436612   2013-06-25 10:10:32       pull getrestbyimei

我是这样尝试的:

SELECT imei as IMEI, MAX(FROM_UNIXTIME(timestamp)) as TIME, action as STATUS
    FROM testlog
    where action like  'pull%'
    GROUP BY imei
order by TIME asc

最佳答案

我认为您不需要 FROM_UNIXTIME 函数。

SELECT imei as IMEI, MAX(timestamp) as TIME, action as STATUS
    FROM testlog
    where action like  'pull%'
    GROUP BY imei
order by TIME asc

这是 SQL Fiddle Demo .

关于mysql - 获取最新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292754/

相关文章:

php - mysqli 是否在同一个请求中重用连接?

java - 如何在最短的时间内从大量文件/子文件夹中取出子文件夹中的所有重复文件?

c# - Linq 的 GroupBy 方法如何延迟执行?

python - Pandas 重复 groupby

mysql - 我应该在此查询中使用什么来替换 GROUP BY?

php - 使用 mysql 中另一个表中的相似数据更新新数据库表的语法

php - MySQL 获取全天网站统计信息

php - 网络应用程序 : How to save user's "likes" properly?

MySql - 职位空缺查询和分组依据

sql - 如何找到分组的 SQL 中位数