Группировка MySQL по [дубликату]

0

У меня есть одна таблица в MySQL:

tblUser 
    - name      varchar(200)
    - sex       varchar(200)
    - signDate' datetime

Изображение 174551

Я ищу следующий результат:

monthDate   M    F
01          0    1
06          0    2
07          0    2
08          0    2
09          0    2
10          1    0
11          1    0
12          0    2

Но я получаю следующее: моя проблема в том, что я не могу понять, как я могу показать результат для Sex M и F в одной строке как предыдущий результат, который я ищу.

Мой результат:

monthDate   sex   count(1)
 1          F     1
 6          F     2
 7          F     2
 8          F     2
 9          F     2
10          M     1
11          M     1
12          F     2

Мой запрос:

SELECT monthDate
      ,sex
      ,count(1)
FROM
(
    SELECT name
        ,sex
        ,MONTH(signDate) monthDate
    FROM  dbPaciente.tblUser
    GROUP BY monthDate
            ,sex
    ORDER BY monthDate asc
            ,sex
) tableResult
GROUP BY monthDate;

Не могли бы вы дать мне представление о том, как его решить, пожалуйста? Заранее спасибо,

Теги:
group-by

1 ответ

1
Лучший ответ
SELECT monthDate
      ,count(case when sex='f' then sex else null end)F
      ,count(case when sex='m' then sex else null end)M
FROM
(
    SELECT name
        ,sex
        ,MONTH(signDate) monthDate
    FROM  dbPaciente.tblUser
    GROUP BY monthDate
            ,sex
    ORDER BY monthDate asc
            ,sex
) tableResult
GROUP BY monthDate
  • 0
    Используйте условную агрегацию
  • 0
    Дорогой Даниэль, это потрясающе! Большое спасибо, просто я поставил неправильный "GROUP BY monthDate, sex" во внутреннем запросе, которого там не должно быть, теперь идеально, спасибо еще раз :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню