Я пытаюсь понять, как я могу сделать это в SQL. У меня есть таблица со следующими столбцами в таблице Customer - (Customer_Id, Gender, Birthday). Вопрос в том, что мне нужно найти самого раннего и последнего родившегося по полу. По сути Мин и Макс по разным группам.
123 M 2017-07-05 00:00:00.000
345 M 2016-08-01 00:00:00.000
555 F 2012-01-09 00:00:00.000
567 F 2015-02-07 00:00:00.000
789 F 2013-01-02 00:00:00.000
111 F 2000-01-01 00:00:00.000
188 M 2008-09-01 00:00:00.000
Результирующий набор должен выглядеть следующим образом
188 M 2008-09-01 00:00:00.000
123 M 2017-07-05 00:00:00.000
111 F 2000-01-01 00:00:00.000
567 F 2015-02-07 00:00:00.000
Я мог бы сделать 4 UNION
S и понять это таким образом, но это было бы неэффективно.
Вот то, что я придумал, но это тоже не сработает. Как мне сделать это для групп MAX также в одном запросе?
select a.Customer_id, a.gender, b.min_birthday
from(
select gender, min(birthday) min_birthday
from Sales..Customer group by gender) b join Sales..Customer a on b.gender = a.gender
and b.min_birthday = a.birthday