PostgreSQL に、次の構造とデータを持つテーブルがあります。
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
「質問」ごとに最大の「回答」を含む「回答」を返すクエリを実行するにはどうすればよいですか? 上記のデータについては、次のようなものを見たいと思います。
Question | Answer | Responses
---------------------------------------
Burger Whopper 19
Drink Coke 22
Side Fries 19
「質問」ごとに最大の「応答」を取得するのに問題はありませんが、関連する「応答」を引き出すことも問題であることが証明されています。質問と最高の応答を取得するために機能する SQL は次のとおりです。
SELECT Question, MAX(Responses) FROM mytable GROUP BY Question;
誰かが私の方程式の最後の部分に光を当てることができますか?関連する回答を示していますか?
私はこれを試しました:
SELECT Question, Answer, MAX(Responses) FROM mytable GROUP BY Question;
ただし、Postgres は、Answer が集計または GROUP BY ステートメントで使用されていないと不満を漏らしています。事前にすべての質問を決定し、各質問に対して SQL クエリを実行して、最も多くの回答が得られる回答を見つけるだけでよいのでしょうか? この厄介な道をたどりたくないのですが、それはオプションだと思います。
ありがとう!