Проблема с SQL

bjohny
Дата: 05.04.2004 10:04:36
Привет. Проблема в следующем:
Есть таблица, в которой содержатся данные о сотрудниках:

id|full_name|national|sex
1 |Ivanov | rus | true
1 |Sidorov | rus | true
1 |Kim | kor | true
1 |Petrova | rus | false
1 |Borisova | rus | false

true- мужской пол, false соответственно женский.

Нужно написать запрос который бы выводил количество МУЖ и ЖЕН поля для соответсвующей национальности.
Примерно такой запрос выдает слудеющий результат

select
national,
case when sex=true then count(id) else 0 end as Male,
case when sex=false then count(id) else 0 end as Female
from test
group by national, sex

Результат
national|Male|Female
rus |2 |0
rus |0 |2
kor |1 |0

Как сделать чтобы оба поля выводились в одной строке? В оракле это делалось с помощью Union All. В постгрусе Union All дает тот же самый результат.
Помогите побороть.
PostgreSQL v7.4.2
LeXa NalBat
Дата: 05.04.2004 10:34:25
select * from
( select national, count(*) as male from test where sex = true group by national ) as M
full outer join
( select national, count(*) as female from test where sex = false group by national ) as F
using ( national )

P. S.: "В оракле это делалось с помощью Union All." Кажется, что union здесь не поможет, даже оракловый.
bjohny
Дата: 05.04.2004 10:39:41
Оракловский Union помогал.
С энтим щаз поразбераюсь.
Спасиб
bjohny
Дата: 05.04.2004 10:44:50
Огромным спасиб, все получилось
LeXa NalBat
Дата: 05.04.2004 10:52:49
Еще так придумалось.

select
national,
sum( case when sex is true then 1 else 0 end ) as male,
sum( case when sex is true then 0 else 1 end ) as female
from test
group by national

"Оракловский Union помогал." Странно. :-(
bjohny
Дата: 05.04.2004 12:57:34
Да такой вариант тоже. ТОлько вот group по дурацки сортирует
bjohny
Дата: 05.04.2004 13:19:54
Как заставить group by отсортировать national по возрастанию
LeXa NalBat
Дата: 05.04.2004 13:26:55
"group по дурацки сортирует"

Как же именно?

"Как заставить group by отсортировать national по возрастанию"

Добавив "order by" можно отсортировать результат как угодно.
bjohny
Дата: 05.04.2004 13:38:02
Упс... :( лохонулся