Próbuję wybrać maksymalną wartość z jednej kolumny, podczas grupowania przez inną nieunikalną kolumnę id, która ma wiele zduplikowanych wartości. Oryginalna baza danych wygląda mniej więcej tak:Wybierz wiele kolumn (funkcja nie agregująca) za pomocą GROUP BY
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
...
Działa to dobrze przy użyciu:
SELECT c.mukey, Max(c.comppct_r) AS ComponentPercent
FROM c
GROUP BY c.mukey;
która zwraca tablicę jak:
mukey | ComponentPercent
65789 | 20
65790 | 26
65791 | 50
65792 | 90
Chcę, aby móc dodać inne kolumny bez wpływu na funkcję GROUP BY, aby kolumny takie jak nazwa i typ zawierały w tabeli wyjściowej, takie 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 komunikat o błędzie z informacją, że muszę użyć funkcji agregującej z instrukcją select. Jak mam to zrobić?
Jaka jest twoja oczekiwany wynik? –
Dodałem to do op, Dzięki – Dylansq