Re: can i make this sql query more efficiant?

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: can i make this sql query more efficiant?
Дата
Msg-id 200304040816.01369.josh@agliodbs.com
обсуждение исходный текст
Ответ на Re: can i make this sql query more efficiant?  ("Tomasz Myrta" <jasiek@klaster.net>)
Ответы Re: can i make this sql query more efficiant?  (Manfred Koizar <mkoi-pg@aon.at>)
Список pgsql-sql
Tomasz,

> What about this:
> select
>   event,
>   sum(case when level=1 then 1 else 0 end) as ones,
>   sum(case when level=2 then 1 else 0 end) as twos,
>   sum(case when level=3 then 1 else 0 end) as threes
> from baz
> group by event;

That version is only more efficient for small data sets.    I've generally
found that case statements are slower than subselects for large data sets.
YMMV.

BTW, while it won't be faster, Joe Conway's crosstab function in /tablefunc
does this kind of transformation.

--
Josh Berkus
Aglio Database Solutions
San Francisco



В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Finding if a temp table exists in the current connection
Следующее
От: Manfred Koizar
Дата:
Сообщение: Re: can i make this sql query more efficiant?