У меня есть таблица в PostgreSQL со следующей структурой & данных: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
Как я могу выполнить запрос, который возвращает «ответ» с higest «Ответы» для каждого «Вопрос «? Для приведенных выше данных, я хотел бы увидеть что-то вроде:
Question | Answer | Responses
---------------------------------------
Burger Whopper 19
Drink Coke 22
Side Fries 19
У меня нет никаких проблем с получением в higest «Response» Еогеасп «вопрос», но и вынув соответствующий «ответ» на поверку быть проблемой. SQL, который работает, чтобы получить Вопрос & высокого отклика является:
SELECT Question, MAX(Responses) FROM mytable GROUP BY Question;
Кто-нибудь может пролить свет на последнюю часть моего уравнения - показывать соответствующий ответ?
Я попытался это:
SELECT Question, Answer, MAX(Responses) FROM mytable GROUP BY Question;
однако Postgres жалуется, что ответа не используется в совокупности или GROUP BY заявление. Должен ли я просто задать все мои вопросы заранее, а затем выполнить SQL-запрос для каждого вопроса, чтобы найти ответ с наибольшим количеством ответов? Я бы предпочел не пойти по этому грязному пути, но это вариант, я думаю.
Спасибо!
Я должен уточнить, что я не всегда знаю, что находится в столбце «Вопрос» или «Ответы». Я просто хочу видеть * каждый вопрос с его наиболее популярным ответом. – rossp