(хотелось бы придумать более описательный заголовок ... предложите один или отредактируйте этот пост, если вы можете назвать тип запроса, о котором я спрашиваю)
База данных: SQL Server 2000
Пример данных (предположим, 500 000 строк):
<b>Name Candy PreferenceFactor</b>
Jim Chocolate 1.0
Brad Lemon Drop .9
Brad Chocolate .1
Chris Chocolate .5
Chris Candy Cane .5
<i>499,995 more rows...</i>
Обратите внимание, что число строк с данным «Именем» не ограничено.
Желаемые результаты запроса:
Jim Chocolate 1.0
Brad Lemon Drop .9
Chris Chocolate .5
<i>~250,000 more rows...</i>
(Поскольку Крис одинаково предпочитает Candy Cane и Chocolate, последовательный результат является адекватным).
Вопрос:
Как выбрать Имя, Candy из данных, где каждая результирующая строка содержит уникальное имя, так что выбранный Candy имеет самый высокий PreferenceFactor для каждого имени. (быстрые эффективные ответы предпочтительнее).
Какие индексы требуются для таблицы? Имеет ли значение, если Name и Candy являются целочисленными индексами в другой таблице (кроме необходимости некоторых объединений)?