J'ai une table dans PostgreSQL avec la structure suivante & données:Analyse de données PostgreSQL/agrégats
Question | Answer | Responses
---------------------------------------
Burger BigMac 8
Burger Whopper 19
Burger Cheeseburger 4
Drink Coke 22
Drink Water 1
Drink Juice 7
Side Salad 8
Side Fries 19
Comment puis-je exécuter une requête qui retourne la « réponse » avec « réponses » du higest pour chaque « Question '? Pour les données ci-dessus je veux voir quelque chose comme:
Question | Answer | Responses
---------------------------------------
Burger Whopper 19
Drink Coke 22
Side Fries 19
Je n'ai pas de problème pour obtenir le higest « Response » foreach « Question », mais aussi en tirant le correspondant « réponse » se révèle être un problème. Le SQL qui fonctionne pour obtenir la réponse la plus élevée Question & est:
SELECT Question, MAX(Responses) FROM mytable GROUP BY Question;
Quelqu'un peut-il faire la lumière sur la dernière partie de mon équation - montrant la réponse pertinente?
J'ai essayé:
SELECT Question, Answer, MAX(Responses) FROM mytable GROUP BY Question;
cependant Postgres se plaint que réponse n'est pas utilisé dans un agrégat ou GROUP BY. Ai-je juste besoin de déterminer toutes mes questions à l'avance, puis faire une requête SQL pour chaque question pour trouver la réponse avec le plus de réponses? Je préfère ne pas descendre ce chemin désordonné, mais c'est une option je suppose.
Merci!
Je devrais préciser que je ne sais pas toujours ce qui est dans la colonne «Question» ou «Réponses» - Je veux juste voir * chaque * question avec sa réponse la plus populaire. – rossp