Skip to content
Advertisement

PostgreSQL:How get last rows from a select query

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

LIMIT and OFFSET

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;
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement