我在 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 查询以找到响应最多的答案?我宁愿不走这条凌乱的道路,但我想这是一个选择。
谢谢!