Как показать «значение» [столбец] и «сумму всех таких значений» [мудрый ряд] для группы EmpId в одной строке - PullRequest
0 голосов
/ 03 июня 2019

Как отобразить «значение» [столбец] и «сумму всех таких значений» [мудрый ряд] для группы EmpId в одной строке.

SELECT ID, SUM(VALUE1), SUM(VALUE2) 
GROUP BY EmpID 

Приведенный выше запрос вернет сумму, но я также хочу показать значения Value1 и Value2 в одной строке.

Например

У меня есть следующая таблица ввода:

EmpID  VALUE1  VALUE2
==================
1       1       5         
1       2       6         
2       3       7         
2       4       8

Я хочу следующую таблицу вывода(сгруппированы по EmpID) -> и Value1, Value2 и их сумма в одной строке

EmpID  Value1  VALUE2  total_Value1   total_Value2
===============================================
1       1       5         3               11
1       2       6         3               11
2       3       7         7               15     
2       4       8         7               15 

Ответы [ 2 ]

4 голосов
/ 03 июня 2019

Используя SUM() OVER(PARTITION BY) оконную функцию, вы можете получить ожидаемый результат:

SELECT EmpID, VALUE1, VALUE2,
       SUM(VALUE1) OVER (PARTITION BY EmpID) AS total_Value1,   
       SUM(VALUE2) OVER (PARTITION BY EmpID) AS total_Value2
FROM TableName

Демонстрация по дб <> fiddle

2 голосов
/ 03 июня 2019

Использование оконных функций:

SELECT ID, SUM(SUM(VALUE1)) OVER (PARTITION BY id),
       SUM(SUM(VALUE2)) OVER (PARTITION BY id)
FROM T
GROUP BY EmpID;

Однако я не думаю, что агрегация необходима:

SELECT ID, SUM(VALUE1) OVER (PARTITION BY id),
       SUM(VALUE2) OVER (PARTITION BY id)
FROM T;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...