2017-04-12 3 views
0

J'ai une table comme ceSQL fenêtrage somme cumulable avec le regroupement

|week_no|value|attribute| 
------------------------- 
| 1 | 3 | a | 
| 2 | 3 | a | 
| 3 | 3 | a | 
| 1 | 4 | b | 
| 2 | 4 | b | 
| 3 | 4 | b | 

Je voudrais avoir un compte accumulative de la colonne de valeur

|week_no|value|attribute|accum_value| 
------------------------------------- 
| 1 | 3 | a |  3  | 
| 2 | 3 | a |  6  | 
| 3 | 3 | a |  9  | 
| 1 | 4 | b |  4  | 
| 2 | 4 | b |  8  | 
| 3 | 4 | b | 12  | 

J'ai essayé de faire la ci-dessus en utilisant cette fonction de fenêtrage mais il ne semble pas retourner les valeurs correctes

SUM(value) OVER(ORDER BY 1 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS accum_value 
+0

MySQL ne prend pas en charge les fonctions de fenêtre, donc je suppose que vous ne l'utilisez pas. –

Répondre

1

La bonne victoire La fonction dow utiliserait

SUM(value) OVER (PARTITION BY attribute ORDER BY week_no 
       ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 
       ) AS accum_value 
+0

Cela ne semble pas fonctionner, si quelque chose que j'ai obtenu les mêmes résultats que de regarder les attributs bruts, mais avec une certaine forme de multiplicateur sur eux. – edumike