sql—如何获取mysql表中某个用户的最后一次和第二次插入的数据?

z0qdvdin  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(337)
create table table_1(user_id int, bmi int, date date)

Insert into table_1(user_id, bmi ,date) values (1, '20', '2020-05-01'),
                                       (1, '25', '2020-05-10'),
                                       (1, '30', '2020-05-20');

在这里,我想检索用户“1”的两个最新插入的“bmi”,以便比较他的改进等。结果应给出日期2020-05-10和2020-05-20的“bmi”

46scxncf

46scxncf1#

解决方案(仅适用于mysql 8.0):

SELECT bmi FROM 
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY date DESC) row_num
FROM input_table
)
WHERE user_id = 1 AND row_num <= 2;

解决方案2适用于任何mysql版本:

SELECT bmi
FROM input_table
WHERE user_id = 1
ORDER BY date DESC LIMIT 2;
mbzjlibv

mbzjlibv2#

得到答案:从表1中选择bmi,其中user id=1 order by date desc limit 2;学分:@luuk

相关问题