Re: Outer Join help please

Поиск
Список
Период
Сортировка
От Manfred Koizar
Тема Re: Outer Join help please
Дата
Msg-id 8rommv0iebc4gsamk1ad3um110atffbp47@email.aon.at
обсуждение исходный текст
Ответ на Outer Join help please  (Rory Campbell-Lange <rory@campbell-lange.net>)
Список pgsql-general
On Fri, 19 Sep 2003 10:10:17 +0100, Rory Campbell-Lange
<rory@campbell-lange.net> wrote:
>The sent
>column shows the number of items sent to each recipient from each
>source. The received column [...] is summing the number of messages
> by recipient [and] need to be filtered by source too.

SELECT t_to AS recipient,
       t_from AS sender,
       count(*) AS sent,
       sum(CASE WHEN dlr = 1 THEN 1 ELSE 0 END) AS received,
       sum(CASE WHEN dlr = 1 THEN 0 ELSE 1 END) AS outstanding
  FROM dlr
 GROUP BY t_to, t_from;

gives

 recipient | sender | sent | received | outstanding
-----------+--------+------+----------+-------------
 22        | 1      |    3 |        2 |           1
 23        | 1      |    1 |        1 |           0
 25        | 1      |    1 |        1 |           0
 25        | 2      |    1 |        1 |           0
 26        | 2      |    2 |        0 |           2
 27        | 2      |    3 |        0 |           3
(6 rows)

but I'm not sure whether this is what you want.  I didn't even use a
join ...

If it meets your requirements and you are sure that dlr is always 0,
1, or NULL, then here is a simpler version:

SELECT t_to AS recipient,
       t_from AS sender,
       count(*) AS sent,
       sum(dlr) AS received,
       count(*) - sum(dlr) AS outstanding
  FROM dlr
 GROUP BY t_to, t_from;

Servus
 Manfred

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

Предыдущее
От: "Johnson, Shaunn"
Дата:
Сообщение: Re: anyone use Ora2Pg?
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: anyone use Ora2Pg?