Задача на знание SQL

Как-то на собеседовании в одну крупную компанию (разработчик онлайн игр) задали задачку, которую я не смог решить на бумажке. Пришел домой и воспользовавшись консолью, методом проб и ошибок решил все-таки ее, оказалось все было несложно.

Вообщем хотел поделиться ею с моими читателями, может быть кто-то подскажет более шустрый вариант.

Суть задачи в следующем: Есть табличка сотрудников какой-то абстрактной компании, содержит поля: департамент, пол сотрудника и ненужные для нашей задачи поля типа имени, возраста и т.п. Нужно вывести результирующую таблицу в виде:
department M F
id-департамента Количество мужчин Количество женщин
Проще говоря, нужно посчитать сколько в каждом департаменте работает мужчин и сколько женщин. Решение заключается в использовании вложенных запросов MySQL.
SELECT
  m.department, m.M, f.F
FROM (
  SELECT department, COUNT(id) AS M
  FROM departments dm
  WHERE gender='m'
  GROUP BY department
) AS m
LEFT JOIN (
  SELECT department, COUNT(id) AS F
  FROM departments dm
  WHERE gender='f'
  GROUP BY department
) AS f ON m.department=f.department
Информация
Автор webmancer Нравится 0
Рейтинг 1 Не нравится 0
Голосов 1 Прочитали 1
Дата 2011-11-17 09:00:00 В избранном 0
Ваша реакция

Только авторизованные пользователи могут участвовать в рейтингах, делать заметки и добавлять в избранное.

Зарегистрироваться

Авторизоваться

На рекомендательном сервисе WEBmancer.Org только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.