sql - Group by with MIN value in same query while presnting all other columns -
i have view called a
data:
id tdate name task val 23 2015-06-14 23 2015-06-25 126 2015-06-18 126 2015-06-22 126 2015-06-24
id
integer , tdate
timestamp.
basically want each id
min value of tdate
, present row. meaning:
id tdate name task val 23 2015-06-14 126 2015-06-18
i wrote query:
select id, min(tdate) group id order id
this working but doesn't allow me present other columns of a
for example if do:
select id, min(tdate), name group id order id
it says name must under group by. wrote query:
select id, min(tdate), name, task, val , .... group id, name, task, val , .... order id
and 1 doesn't work. gives false results.
how solve it?
postgres has convenient distinct on
type of problem:
select distinct on (id) a.* order id, tdate;
this return 1 row each id
. row first 1 determined ordering defined in order by
clause.
Comments
Post a Comment