Thread: test aggregate functions without a dummy table

test aggregate functions without a dummy table

From
"Willy-Bas Loos"
Date:
Hi,

I want to test the behavior of an an aggregate without creating a dummy table for it.
But the code for it is horrible.
Is there no simpler way?

select max(foo)
from (select 1 as foo union select 2 as foo)bar;

thx

Re: test aggregate functions without a dummy table

From
Tom Lane
Date:
"Willy-Bas Loos" <willybas@gmail.com> writes:
> I want to test the behavior of an an aggregate without creating a dummy
> table for it.
> But the code for it is horrible.
> Is there no simpler way?

> select max(foo)
> from (select 1 as foo union select 2 as foo)bar;

Perhaps VALUES?

regression=# select max(foo) from (values(1,2),(3,4),(5,6)) as v(foo,bar);
 max
-----
   5
(1 row)


            regards, tom lane

Re: test aggregate functions without a dummy table

From
Michael Fuhr
Date:
On Fri, Jun 20, 2008 at 10:11:08AM -0400, Tom Lane wrote:
> "Willy-Bas Loos" <willybas@gmail.com> writes:
> > I want to test the behavior of an an aggregate without creating a dummy
> > table for it.
> > But the code for it is horrible.
> > Is there no simpler way?
>
> > select max(foo)
> > from (select 1 as foo union select 2 as foo)bar;
>
> Perhaps VALUES?
>
> regression=# select max(foo) from (values(1,2),(3,4),(5,6)) as v(foo,bar);

Or perhaps using a set-returning function like generate_series():

test=> select max(foo) from generate_series(1, 100) as g(foo);
 max
-----
 100
(1 row)

--
Michael Fuhr