Использование предложения Group By And Over для разных столбцов - PullRequest
0 голосов
/ 18 января 2020

У меня есть такая таблица;

col 1|col 2|col 3
a    | 2   | 10
b    | -1  | 10
a    | 10  | 10

Цель состоит в том, чтобы получить вывод как;

col 1|  col 2| col 3
a    | 12    | 30
b    |  -1   |30

Я пробовал следующий запрос;

select col 1,
sum(col 2),
sum(col 3) OVER()
From table t1
group by col 1

Но я получил ошибку; col 3 не является допустимой группой по выражению. Просьба предложить альтернативное решение. Спасибо заранее.

1 Ответ

1 голос
/ 18 января 2020

Вы можете попытаться взять сумму SUM(col3) по всей таблице:

SELECT
    col1,
    SUM(col2),
    SUM(SUM(col3)) OVER()
FROM table t1
GROUP BY col1;

Если вы хотите использовать SUM в качестве оконной функции, то вам нужно сложить что-то, что доступно после оценки GROUP BY. SUM(col3) доступно, а col3 нет.

...