Расчет промежуточной суммы с помощью предложения OVER и предложения PARTITION BY с помощью счетчика - PullRequest
0 голосов
/ 29 августа 2018

как рассчитать сумму баллов за каждый номер недели и имя пользователя с помощью счетчика? Я использую sum() OVER (PARTITION BY ORDER BY )

И я бы хотел, чтобы максимальная сумма была 10.
Как я могу это сделать?

Вот мой оригинальный стол:

enter image description here

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

enter image description here

Вот код sql:

SELECT week_number,
user_name,
sum(points) OVER (PARTITION BY user_name ORDER BY week_number) AS total_prime
FROM team;

1 Ответ

0 голосов
/ 30 августа 2018

Попробуйте это

select 
  week_number, 
  user_name, 
  points, 
  case when total_prime > 10 then 10 else total_prime end as sum, 
  case when total_prime > 1 and total_prime < 10 then null 
       when total_prime > 10 then total_prime - 10 end as dif
from
  (select 
     week_number, 
     user_name, points, 
     sum(points) over (partition by user_name order by week_number) as total_prime 
   from 
     team) a

Я не получаю его во второй таблице, где у alan есть point 4, но есть sum 2.

...