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ć?