目录
题目
准备数据
分析数据
题目
编写解决方案以获取在 2020
年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020
年没有登录过的用户。
返回的结果集可以按 任意顺序 排列。
准备数据
Create table If Not Exists Logins (user_id int, time_stamp datetime);
Truncate table Logins;
insert into Logins (user_id, time_stamp) values ('6', '2020-06-30 15:06:07');
insert into Logins (user_id, time_stamp) values ('6', '2021-04-21 14:06:06');
insert into Logins (user_id, time_stamp) values ('6', '2019-03-07 00:18:15');
insert into Logins (user_id, time_stamp) values ('8', '2020-02-01 05:10:53');
insert into Logins (user_id, time_stamp) values ('8', '2020-12-30 00:46:50');
insert into Logins (user_id, time_stamp) values ('2', '2020-01-16 02:49:50');
insert into Logins (user_id, time_stamp) values ('2', '2019-08-25 07:59:08');
insert into Logins (user_id, time_stamp) values ('14', '2019-07-14 09:00:00');
insert into Logins (user_id, time_stamp) values ('14', '2021-01-06 11:59:59');
分析数据
第一步:删选出2020年的数据
selectuser_id,time_stamp
from logins
where year(time_stamp) = '2020';
第二步:max(time_stamp)就是最后一次登录的时间
with t1 as (selectuser_id,time_stampfrom loginswhere year(time_stamp) = '2020'
)select user_id,max(time_stamp) last_stamp from t1
group by user_id;
总结
遇到最后一次登录,可以使用max()函数