SQL запрос на увеличение значения на основе нескольких групп - PullRequest
0 голосов
/ 20 марта 2020

У меня есть требование, где я должен выполнить следующую задачу

Col5 в основном использует col4 и col3

Я могу сделать форматирование для col5, но запутался, как увеличить значение, когда это 1 или 0

enter image description here

1 Ответ

0 голосов
/ 20 марта 2020

С sum() оконной функцией:

select *,
  cast(sum(col4) over (partition by col1 order by col3) as varchar) +
  '/' +
  cast(col3 as varchar) col5
from tablename

или если порядок определяется как date:

select *,
  cast(sum(col4) over (partition by col1 order by col2) as varchar) +
  '/' +
  cast(col3 as varchar) col5
from tablename

См. Демонстрационную версию . Результаты:

> col1 | col2       | col3 | col4 | col5
> :--- | :--------- | ---: | ---: | :---
> abc  | 2019-03-20 |    1 |    1 | 1/1 
> abc  | 2019-03-21 |    2 |    0 | 1/2 
> abc  | 2019-03-22 |    3 |    1 | 2/3 
> def  | 2019-03-22 |    1 |    0 | 0/1 
> def  | 2019-03-23 |    2 |    1 | 1/2 
> def  | 2019-03-24 |    3 |    0 | 1/3
...