Sélectionnez plusieurs colonnes (fonction non agrégée) avec GROUP BY

Je suis en train de sélectionner la valeur maximale d'une colonne, tandis que le groupement par un autre non-colonne d'id unique qui dispose de plusieurs valeurs en double. La base de données d'origine ressemble à quelque chose comme:

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
...

Cela fonctionne bien en utilisant:

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

Qui retourne un tableau du type:

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

Je veux être en mesure d'ajouter d'autres colonnes dans sans incidence sur le GROUPE PAR fonction, pour inclure des colonnes comme le nom et le type dans la table de sortie comme:

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

mais il y a toujours produit un message d'erreur indiquant que j'ai besoin d'utiliser une fonction d'agrégation avec l'instruction select. Comment dois-je faire?

source d'informationauteur Dylansq