#sql #oracle #window-functions
#sql #Oracle #окно-функции
Вопрос:
У меня есть несколько POs со значениями, и мне нужно вычислить сумму, но также отобразить все строки и столбцы. вот таблица ввода, поэтому результат остается тем же дополнительный столбец для суммы, 150 (для 1,2) или 200 (для 4,5)
Я могу просто использовать аналитическую функцию для отображения суммы со всеми строками
select PO, start, end , value , sum(value) over (partition by start, end ) as sum
from table;
но заказы не перекрывают друг друга в точную дату, как это каждый раз, предположим, что есть другой заказ
будет 2 случая
- сумма значений для заказов 1,2,3, которая равна 250
- сумма значений для заказа 3,4,5, которая равна 300
В выходных данных мне нужно отобразить всю строку сумму, и, конечно, в этой конкретной ситуации PO 3 должен отображаться дважды.
есть идеи? Спасибо
Комментарии:
1. И как вычисляются даты? Ваш пример перекрытий довольно прост. Что происходит в более сложных ситуациях?
2. что вы имеете в виду, как вычисляются даты? есть такие простые совпадения, и, как я уже писал, во многих случаях есть несколько заказов с одинаковым таймфреймом (одинаковое начало и конец), поэтому аналитическая функция может работать, но может быть случай, когда один или несколько заказов перекрываются только за 1 день
3. Какую версию oracle вы используете?
4. версия oracle 12
5. Вы сказали, что хотите
but also display all rows
. Но вы не сказали, как должна отображаться запись дляPO=3
as individual. а также я не понимаю, зачем вам это нужноof course the PO 3 must be displayed twice in this particular situation
.