как соединить два запроса?

vitaliy1911
Дата: 12.06.2012 20:50:53
есть таблица 'жители'

имя  пол город
валя ж москва
петя м воронеж
вася м москва
леня м питер

как правильно составить запрос, чтобы в результате получилось

город    количество_мужчин количество_женщин
москва 1 1
питер 1 0
воронеж 1 0
Dimitry Sibiryakov
Дата: 12.06.2012 20:58:19

Use group by + count() + case, Luke!

Posted via ActualForum NNTP Server 1.5

miwaonline
Дата: 12.06.2012 20:58:52
vitaliy1911,

А как пытался? Что перед этим читал?
vitaliy1911
Дата: 12.06.2012 23:25:11
miwaonline, читал все, что давал гугл по запросу "соединить два запроса". проблема в том, что времени совсем нет, чтобы сесть спокойно и почитать, нужно было быстрое решение для конкретной задачи, поэтому и написал сюда. в итоге товарищ помог справится при помощи подзапросов вот так:

SELECT town.город, men.количество_мужчин, women.количество_женщин
FROM
    (SELECT DISTINCT город
    FROM жители) AS town LEFT JOIN

    (SELECT город, count(*) AS количество_мужчин
    FROM жители
    WHERE пол = 'м'
    GROUP BY город) AS men ON town.город=men.город LEFT JOIN

    (SELECT город, count(*) AS количество_женщин
    FROM жители
    WHERE пол = 'ж'
    GROUP BY город) AS women ON town.город=women.город


Dimitry Sibiryakov, спасибо, но с case так и не разобрался
Dimitry Sibiryakov
Дата: 12.06.2012 23:57:50

vitaliy1911
товарищ помог справится при помощи подзапросов вот так:

Только никому этот запрос не показывай. От препода получишь двойку, а от начальника -
увольнение за несоответствие.

Posted via ActualForum NNTP Server 1.5

vitaliy1911
Дата: 13.06.2012 00:00:49
Dimitry Sibiryakov, в чем несоответствие заключается?
miwaonline
Дата: 13.06.2012 00:03:00
vitaliy1911,

DS имел в виду служебное несоответствие. Заключается в полном незнании используемого инструментария.
vitaliy1911
Дата: 13.06.2012 00:23:25
понял, но в моей ситуации главное чтобы работало, а не сама реализация. в любом случае всем спасибо
vitaliy1911
Дата: 13.06.2012 00:38:10
в будущем постараюсь наверстать свое неумение пользоваться CASE
Гаджимурадов Рустам
Дата: 13.06.2012 02:16:30

Dimitry Sibiryakov> От препода получишь двойку, а от начальника - увольнение за несоответствие.

Не факт. Для этого нужно, чтобы препод и начальник сами владели
предметом (case-ом в данном случае), в чем лично я вовсе не уверен.

Posted via ActualForum NNTP Server 1.5