вывести последних и первых дат по группе sql запросом

Не получается вывести последние и первые даты для "m" и "w" sql запросом. не указывая вручную "m" и "w" чтоб для любых групп работало. групп может быть больше двух

введите сюда описание изображения


Ответы (2 шт):

Автор решения: S.H.

Как я понял, соль вопроса в том, как сжедать это ОДНИМ sql запросом.

Я могу предложить только неизящный способ, основанный на использовании union:

    select min(birthday), null from table where sex='m'
    union
    select null, max(birthday) from table where sex='w'

Кто лучше?

→ Ссылка
Автор решения: Aziz Umarov

я постараюсь без uniona

select 
      min(CASE WHEN sex='m' THEN birthday END) AS minM, 
      min(CASE WHEN sex='w' THEN birthday END) AS minW,
      max(CASE WHEN sex='m' THEN birthday END) AS maxM, 
      max(CASE WHEN sex='w' THEN birthday END) AS maxW
from table 

или так

select 
      min(birthday) AS min, 
      max(birthday) AS max,
      sex
from table 
group by
sex
→ Ссылка