See the below example,
create table data(name varchar, value int); insert into data values('joe',1); insert into data values('bob',2); insert into data values('jane',3); insert into data values('anne',4); insert into data values('kate',5);
And if I Execute
select * from data limit 2;
Will Get
name | value ------+------- joe | 1 bob | 2 (2 rows)
So,How Can I Get the Last 2 Rows in select * from data
?
What I’m expecting is….
name | value ------+------- anne | 4 kate | 5 (2 rows)
Advertisement
Answer
You have two options according to your need i.e,
select * from data order by value desc limit 2
Or
if you want the 4th and 5th row just offset the first 3 so that the 4th row becomes the start of our set and you can specify a limit to say that you only want 2 rows from that.
select * from data offset 3 limit 2; /* The order of LIMIT and OFFSET does not matter. This gives the same result */ select * from data limit 2 offset 3;