J'ai une table qui ressemble à cet appelant «makerar»
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Et je veux sélectionner la moyenne maximale pour chaque cname.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
mais j'obtiendrai une erreur,
ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
donc je fais ça
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
cependant, cela ne donnera pas les résultats escomptés et la sortie incorrecte ci-dessous est affichée.
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Les résultats réels doivent être
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
Comment résoudre ce problème?
Remarque: ce tableau est une VUE créée à partir d'une opération précédente.
wmname="usopp"
attendu et pas par exemple wmname="luffy"
?