Допустим, у меня есть таблица клиентов, и я хочу сгруппировать их в зависимости от их имени и фамилии, а затем получить средний возраст каждой группы.
Однако мои правила не являются взаимоисключающими. Например:
- Имя начинается с буквы "A"
- Фамилия начинается с буквы "A"
И некоторые клиенты:
id first_name last_name age
1 Ava Adams 36
2 Alexander Williams 44
Первый клиент соответствует обоим правилам, а второй - только первому правилу.
Ожидаемый результат для среднего возраста каждой группы должен составлять:
- 40 для группы 1 (Ава и Александр)
- 36 для группы 2 (Ава)
Но более того, я действительно хотел бы сгруппировать клиентов, как показано ниже (расчет группы поле, которое можно использовать для агрегации):
Ava … Group 1
Ava … Group 2
Alexander … Group 2
Как я могу сделать это с помощью одного SQL запроса?