Sum, Group by и Null - PullRequest
       1

Sum, Group by и Null

0 голосов
/ 15 марта 2019

Я погружаю свои пальцы в SQL. У меня есть следующая таблица

+------+----+------+------+-------+
| Type | ID | QTY  | Rate | Name  |
+------+----+------+------+-------+
| B    |  1 | 1000 |   21 | Jack  |
| B    |  2 | 2000 |   12 | Kevin |
| B    |  1 | 3000 |   24 | Jack  |
| B    |  1 | 1000 |   23 | Jack  |
| B    |  3 |  200 |   13 | Mary  |
| B    |  2 | 3000 |   12 | Kevin |
| B    |  4 | 4000 |   44 | Chris |
| B    |  4 | 5000 |   43 | Chris |
| B    |  3 | 1000 |   26 | Mary  |
+------+----+------+------+-------+

Я не знаю, как бы использовать Sum и Group для достижения следующего результата.

+------+----+------+------+-------+------------+
| Type | ID | QTY  | Rate | Name  | Sum of QTY |
+------+----+------+------+-------+------------+
| B    |  1 | 1000 |   21 | Jack  | 5000       |
| B    |  1 | 3000 |   24 | Jack  | Null       |
| B    |  1 | 1000 |   23 | Jack  | Null       |
| B    |  2 | 3000 |   12 | Kevin | 5000       |
| B    |  2 | 3000 |   12 | Kevin | Null       |
| B    |  3 |  200 |   13 | Mary  | 1200       |
| B    |  3 | 1000 |   26 | Mary  | Null       |
| B    |  4 | 4000 |   44 | Chris | 9000       |
| B    |  4 | 5000 |   43 | Chris | Null       |
+------+----+------+------+-------+------------+

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете использовать функцию окна:

select t.*,
       (case when row_number() over (partition by type, id order by name) = 1
             then sum(qty) over (partition by type, id order by name) 
        end) as Sum_of_QTY
from table t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...