У меня есть запрос, который выводит результаты следующим образом:Создать агрегатную функцию для GROUP BY?
Person Food
====== ======
Abner Apple
Beth Banana
Beth Peach
Carlos Grape
Carlos Kiwi
Carlos Strawberry
. . . .
А именно, он связывает человека с одним или более продуктов. Я хотел бы, чтобы функциональность агрегатной функции выбирала пищу, но ни одна из встроенных агрегатов (SUM, MAX, MIN и т. Д.) Не применима к ситуации.
Если у меня есть функция F(), что, учитывая список продуктов, либо:
- обеспечивает упорядоченный список продуктов , основанный на некоторой оптимизации
- обеспечивает оптимальный уникальный выбор от список
можно ли каким-либо образом применить к нему GROUP BY?
Есть ли у кого-нибудь пример запроса, который делает это по-другому, на случай, если это сон?
= = = =
EDIT: Допустим, что из вариантов, показанных выше, оптимальный список {киви, виноград, банан, клубника, яблоко, персик}, то выход должен сказать:
Abner Apple
Beth Banana
Carlos Kiwi
т. Е. Одна запись на человека и еда для каждого являются первым вхождением в оптимальный список Пищи, связанной с этим Лицом в исходной таблице.
Я знаю, что вы показали нам свой текущий выход, но можете ли вы показать, какой вы хотите получить? –
Вы хотите выбрать одну еду из группы продуктов для данного человека? Какие критерии вы бы выбрали для этого выбора? –
Если элемент в списке Оптимальный не отображается, что должно появиться в новом запросе? –