Wybierz wiele kolumn (funkcja nie agregująca) za pomocą GROUP BY

Próbuję wybrać maksymalną wartość z jednej kolumny, grupując według innej nieunikalnej kolumny identyfikatora, która ma wiele zduplikowanych wartości. Oryginalna baza danych wygląda mniej więcej tak:

mukey    | comppct_r | name | type
65789    | 20        | a    | 7n
65789    | 15        | b    | 8m
65789    | 1         | c    | 1o
65790    | 10        | a    | 7n
65790    | 26        | b    | 8m
65790    | 5         | c    | 1o
...

To działa dobrze, używając:

SELECT c.mukey, Max(c.comppct_r) AS ComponentPercent
FROM c
GROUP BY c.mukey;

Który zwraca tabelę jak:

mukey    | ComponentPercent
65789    | 20
65790    | 26
65791    | 50
65792    | 90

Chcę mieć możliwość dodawania innych kolumn bez wpływu na funkcję GROUP BY, w celu włączenia kolumn takich jak nazwa i typ do tabeli wyjściowej, takich jak:

mukey    | comppct_r | name | type
65789    | 20        | a    | 7n
65790    | 26        | b    | 8m
65791    | 50        | c    | 7n
65792    | 90        | d    | 7n

ale zawsze wyświetla błąd informujący, że muszę użyć funkcji agregującej z instrukcją select. Jak mam to zrobić?

questionAnswers(4)

yourAnswerToTheQuestion