簡體   English   中英

在 SQL 中按特定組添加具有計數和總和的列

[英]Add a column with count and sum by specific group in SQL

我有一個如下所示的數據集:

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

如何在不更改列結構的情況下按組(日期、Var1、Var2、Var4)和同一組中度量 A 的總和作為單獨的列? 我只想將這兩列添加到當前數據集的末尾

我預期的 output 如下:

   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

根據您的數據, var4正在定義組,僅此而已:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM