Добавить столбец с количеством и суммой по конкретной группе в SQL - PullRequest
1 голос
/ 07 октября 2019

У меня есть набор данных, который выглядит следующим образом:

Dataset_1

   Date   Var1   Var2   Var3   Var4   Metric_A    Metric_B
10/1/19   NULL   NULL   NULL      A         10        NULL
10/1/19   NULL   NULL     AB      A       NULL          70
10/1/19   NULL   NULL   NULL      B         60        NULL
10/2/19   NULL      A     AC      B        100        NULL

Как получить счетчик по группе (Date, Var1, Var2, Var4) и сумму метрики A по той же группе, что иотдельный столбец без изменения структуры столбца? Я просто хочу добавить эти два столбца в конец моего текущего набора данных

Мой ожидаемый результат ниже:

   Date   Var1   Var2   Var3   Var4   Metric_A    Metric_B   COUNT_Var   SUM_A
10/1/19   NULL   NULL   NULL      A         10        NULL           2      10
10/1/19   NULL   NULL     AB      A       NULL          70           2      10
10/1/19   NULL   NULL   NULL      B         60        NULL           1      60
10/2/19   NULL      A     AC      B        100        NULL           1     100

Моя попытка будет ниже, но она не сработает:

SELECT *, 
COUNT(*) OVER (PARTITION BY Date, Var1, Var2, Var4), 
SUM(A) OVER (PARTITION BY Date, Var1, Var2, Var4) 
FROM Dataset_1

1 Ответ

1 голос
/ 07 октября 2019

По вашим данным, var4 определяет группы и ничего больше:

SELECT d.*, 
       COUNT(*) OVER (PARTITION BY Var4), 
       SUM(A) OVER (PARTITION BY Var4) 
FROM Dataset_1 d
...