-- 1890. 2020年最后一次登录
-- 表: Logins
--
-- +----------------+----------+
-- | 列名 | 类型 |
-- +----------------+----------+
-- | user_id | int |
-- | time_stamp | datetime |
-- +----------------+----------+
-- (user_id, time_stamp) 是这个表的主键。
-- 每一行包含的信息是user_id 这个用户的登录时间。
--
--
--
-- 编写一个 SQL 查询,该查询可以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。
--
-- 返回的结果集可以按 任意顺序 排列。
--
-- 查询结果格式如下例。
--
--
--
-- 示例 1:
--
-- 输入:
-- Logins 表:
-- +---------+---------------------+
-- | user_id | time_stamp |
-- +---------+---------------------+
-- | 6 | 2020-06-30 15:06:07 |
-- | 6 | 2021-04-21 14:06:06 |
-- | 6 | 2019-03-07 00:18:15 |
-- | 8 | 2020-02-01 05:10:53 |
-- | 8 | 2020-12-30 00:46:50 |
-- | 2 | 2020-01-16 02:49:50 |
-- | 2 | 2019-08-25 07:59:08 |
-- | 14 | 2019-07-14 09:00:00 |
-- | 14 | 2021-01-06 11:59:59 |
-- +---------+---------------------+
-- 输出:
-- +---------+---------------------+
-- | user_id | last_stamp |
-- +---------+---------------------+
-- | 6 | 2020-06-30 15:06:07 |
-- | 8 | 2020-12-30 00:46:50 |
-- | 2 | 2020-01-16 02:49:50 |
-- +---------+---------------------+
-- 解释:
-- 6号用户登录了3次,但是在2020年仅有一次,所以结果集应包含此次登录。
-- 8号用户在2020年登录了2次,一次在2月,一次在12月,所以,结果集应该包含12月的这次登录。
-- 2号用户登录了2次,但是在2020年仅有一次,所以结果集应包含此次登录。
-- 14号用户在2020年没有登录,所以结果集不应包含。
--
-- 来源:力扣(LeetCode)
-- 链接:https://leetcode.cn/problems/the-latest-login-in-2020
-- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。-- DROP TABLE IF EXISTS Logins;
-- CREATE TABLE Logins (
-- user_id int COMMENT '用户ID',
-- time_stamp datetime COMMENT '登录时间戳',
-- PRIMARY KEY (`user_id`,`time_stamp`)
-- )
-- ENGINE=InnoDB
-- DEFAULT CHARSET=utf8mb4
-- COLLATE=utf8mb4_unicode_ci
-- COMMENT='用户登录表'
-- ;
-- INSERT INTO Logins
-- (user_id, time_stamp)
-- VALUES
-- (6, '2020-06-30 15:06:07')
-- ,(6, '2021-04-21 14:06:06')
-- ,(6, '2019-03-07 00:18:15')
-- ,(8, '2020-02-01 05:10:53')
-- ,(8, '2020-12-30 00:46:50')
-- ,(2, '2020-01-16 02:49:50')
-- ,(2, '2019-08-25 07:59:08')
-- ,(14, '2019-07-14 09:00:00')
-- ,(14, '2021-01-06 11:59:59')
-- ;SELECT user_id,MAX(time_stamp) AS last_stamp
FROM Logins
WHERE time_stamp >= '2020-01-01 00:00:00'AND time_stamp < '2021-01-01 00:00:00'
GROUP BY user_id
;