У меня есть таблица tab
, которая содержит столбцы a,b,c,d
. Но следующий запрос не будет работать, поскольку c
не находится в разделе group by или в функции сокращения.Как добавить функцию агрегации в негруппированный столбец, который не находится в списке
SELECT a, b, c FROM tab GROUP BY a, b;
Но что я хочу, чтобы выбрать c
на основе максимального значения d
. Как это сделать в PostgreSQL?
| a | b | c | d |
| 1 | 2 | 3 | 100 |
| 1 | 2 | 4 | 110 |
| 1 | 2 | 5 | 90 |
В качестве результата мне нужен результат в строке 2, потому что значение в d является самым высоким.
Пожалуйста, отредактируйте ваш вопрос, добавьте примерные данные и ожидаемый результат на основе этих данных. _Formatted_ текст, пожалуйста, нет [скриншоты] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a- вопрос/285557 # 285557) –
Что делать, если есть 2 значения с одинаковыми 'd' like' 1,2,3,100' и '1,2,4,100'? Вы хотите оба? – lad2025
@ lad2025, хорошая точка :) .. я думаю, что у меня должен быть только один. Тогда мне нужны еще один критерий, чтобы отфильтровать это. Но опять же его другая проблема. – dinesh707