mysql sql查询每天最后一条数据

mysql sql查询每天最后一条数据

mysql sql查询每天最后一条数据

在日常开发中,我们经常会需要从数据库中查询某个时间范围内每天最后一条数据的需求。比如我们有一个存储用户登录日志的数据表,我们想要查看每天最后一条用户的登录记录。

在MySQL中,可以利用子查询和MAX函数来实现这个需求。下面将详细介绍如何使用SQL语句来查询每天最后一条数据。

数据表结构

假设我们有一个名为login_log的数据表,结构如下:

CREATE TABLE login_log (
    id INT PRIMARY KEY,
    user_id INT,
    login_time DATETIME
);

查询每天最后一条数据

我们首先需要根据日期将数据进行分组,并找出每天的最后一条数据。下面是实现这个需求的SQL语句:

SELECT ll.*
FROM login_log ll
JOIN (
    SELECT DATE(login_time) AS login_date, MAX(login_time) AS max_login_time
    FROM login_log
    GROUP BY login_date
) ll2 ON DATE(ll.login_time) = ll2.login_date AND ll.login_time = ll2.max_login_time;

上面的SQL语句中,首先我们执行了一个子查询,用来找出每天的最后一次登录时间。然后我们将原始login_log表和这个子查询结果进行JOIN操作,找出每天最后一条数据的完整信息。

示例

假设我们有以下login_log表的数据:

id user_id login_time
1 101 2022-01-01 08:00:00
2 102 2022-01-01 12:00:00
3 101 2022-01-01 18:00:00
4 103 2022-01-02 10:00:00
5 102 2022-01-02 15:00:00

应用上面的SQL语句,将得到如下查询结果:

id user_id login_time
3 101 2022-01-01 18:00:00
5 102 2022-01-02 15:00:00

这样,我们就成功查询到了每天最后一条数据。可以看到结果分别是用户101在2022-01-01的最后一次登录记录和用户102在2022-01-02的最后一次登录记录。

通过以上方法,我们可以方便地查询每天最后一条数据,满足项目中的需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程