Search Postgresql Archives

Re: efficiency of group by 1 order by 1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I use a similar SQL, e.g.:
>   select func(x)....group by func(x) order by func(x)
> but my func is rather expensive.  Is func(x) evaluated three times
> in the above statement?  Would it be evaluated only once if I used
>   select func(x)....group by 1 order by 1

try:

select q.v from (select func(t.x) as v from t) q order group by 1 order by 1;

Is your function immutable?  You have to be very careful with
expensive functions in the select clause.  for example

select f(x) from t where id = 1 order by n;

can cause f to execute for the entire table even if id is unique. 
Solution is to subquery as in the above.

merlin


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux