I mit folgenden Struktur & Daten eine Tabelle in PostgreSQL:PostgreSQL Datenanalyse/Aggregates
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
Wie kann ich eine Abfrage, die die ‚Antwort‘ kommt mit dem higest ‚Antworten‘ für jede ‚Frage '? Für die oben genannten Daten würde ich so etwas sehen wollen:
Question | Answer | Responses
---------------------------------------
Burger Whopper 19
Drink Coke 22
Side Fries 19
Ich habe keine Probleme, die higest ‚Antwort‘ foreach ‚Frage‘ bekommen, sondern auch die entsprechende ‚Antwort‘ Herausziehen erweist sich ein Problem sein. Die SQL, die die Frage & höchste Antwort erhalten funktioniert, ist:
SELECT Question, MAX(Responses) FROM mytable GROUP BY Question;
jemand irgendein Licht auf den letzten Teil meiner Gleichung vergießen kann - die entsprechende Antwort zeigt?
Ich habe dies versucht:
SELECT Question, Answer, MAX(Responses) FROM mytable GROUP BY Question;
jedoch Postgres beklagt wird, dass Antwort nicht in einem Aggregat oder GROUP BY-Anweisung verwendet wird. Muss ich nur alle meine Fragen vorher bestimmen, dann eine SQL-Abfrage für jede Frage durchführen, um die Antwort mit den meisten Antworten zu finden? Ich würde lieber nicht diesen unordentlichen Weg gehen, aber es ist eine Option, denke ich.
Danke!
Ich sollte klarstellen, dass ich nicht immer weiß, was in der Spalte "Frage" oder "Antworten" ist - ich will nur * jede * Frage mit seiner beliebtesten Antwort sehen. – rossp