Группировка PostgreSQL Запуск итоговых результатов - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь получить промежуточный итог для 2 магазинов. У меня есть запрос, полученный промежуточный итог для обоих магазинов вместе. Как я могу изменить запрос, чтобы получить промежуточную сумму для каждого магазина отдельно? Ниже мой запрос. Базу данных можно найти здесь .

select store_id,amount, sum(amount) over (order by rental_date)
from payment
join rental on payment.rental_id=rental.rental_id
join store  on payment.customer_id=store.store_id

Вот результат, который я получаю:

store id       amont      sum
1              5.99       5.99 
1              0.99       6.98 
1              9.99       16.97 
1              4.99       21.96 
2              2.99       24.95 
1              4.99       29.94 
1              0.99       30.93 
1              3.99       34.92 

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

если вы хотите, чтобы они были в разных столбцах, вы делаете это так

select
  store_id,
  amount,
  sum(case when store_id = 1 then amount else 0 end) over (order by rental_date) as store1_sum,
  sum(case when store_id = 2 then amount else 0 end) over (order by rental_date) as store2_sum,
from payment
join rental on payment.rental_id=rental.rental_id
join store  on payment.customer_id=store.store_id

для разных строк вы можете разделить как @ BarbarosÖzhan

0 голосов
/ 31 октября 2018

Использование partition by store_id в

sum(amount) over (partition by store_id order by store_id, rental_date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...