Re: how to select rows for a sum function

Поиск
Список
Период
Сортировка
От Frank Bax
Тема Re: how to select rows for a sum function
Дата
Msg-id 4DDA6A99.7000704@sympatico.ca
обсуждение исходный текст
Ответ на how to select rows for a sum function  (e-letter <inpost@gmail.com>)
Список pgsql-novice
On 05/22/11 03:57, e-letter wrote:
> Readers,
>
> For a table:
>
> value name
> 10 text1
> 20 text2
> 30 text3
> 40 text4
>
> The function SELECT ... WHERE cannot be used with an aggregate
> function SUM. Is it possible to obtain a result of the rows where the
> SUM<=number? Ideally, to obtain rows where the sum of values is
> between an upper and lower value, e.g. if the target range is>=50 and
> <=60, the result would be:
>
> text1
> text2
> text3
>
> or
>
> text2
> text4
>
> Each result should go into a separate table
>




No, this is not possible unless you write a function to generate all the
possible combinations.  You are essentially asking for all possible of
these four records to be compared.  For example:
10 text1
20 text2
30 text3
40 text4
30 text1 text2
40 text1 text3
50 text1 text4
50 text2 text3
60 text2 text4
70 text3 text4
60 text1 text2 text3
80 text1 text2 text4
80 text1 text3 text4
90 text2 text3 text4
100 text1 text2 text3 text4

In general, there are 2^n - 1 combinations to be examined!

http://en.wikipedia.org/wiki/Combination#Number_of_k-combinations_for_all_k

As you can see from list of combinations; your expected result set is
incomplete; since (text1, text4) is also between 50 and 60.

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

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: pg_stop_backup fails to complete
Следующее
От: "Birchall, Austen"
Дата:
Сообщение: Re: pg_stop_backup fails to complete