У меня есть таблица в Oracle, которая содержит:Используйте функцию SUM в оракула
id | month | payment | rev
----------------------------
A | 1 | 10 | 0
A | 2 | 20 | 0
A | 2 | 30 | 1
A | 3 | 40 | 0
A | 4 | 50 | 0
A | 4 | 60 | 1
A | 4 | 70 | 2
Я хочу, чтобы вычислить столбец оплаты (SUM(payment))
. Для (id=A month=2)
и (id=A month=4)
, я просто хочу взять наибольшее значение от колонки REV
. Так что сумма равна (10+30+40+70)=150
. Как это сделать?
Я предпочитаю семантику этого метода row_number: «выберите номер версии, который является максимальным числом' (id, month) 'номеров ревизий». Он также может работать лучше, чем метод row_number для больших наборов данных, так как легче хранить одно максимальное значение для каждого (id, month) ', чем ранжировать все возможные номера версий. –