over (partition by ...)

over (partition by ...) - SQL/NoSQL - Programmation

Marsh Posté le 08-09-2010 à 21:01:48    


Qq'un peut m'expliquer ca :
 
select   isin, dte, volume,
           sum(volume) over(partition by isin) volume_total,
           sum(volume) over(partition by isin order by dte) volume_cumule
from     COTATION
where    isin = 'FR0000130007'
order by isin, dte
 
ISIN                 DTE                VOLUME VOLUME_TOTAL VOLUME_CUMULE
-------------------- -------- ---------- ------------      -------------
FR0000130007         02/01/02    4155397   9941158109       4155397
FR0000130007         03/01/02    9266945   9941158109      13422342
FR0000130007         04/01/02   10741659   9941158109      24164001
FR0000130007         07/01/02    8462352   9941158109      32626353
FR0000130007         08/01/02   11571103   9941158109      44197456
FR0000130007         09/01/02    9459922   9941158109      53657378
FR0000130007         10/01/02    9175396   9941158109      62832774
 
VOLUME_TOTAL je pige pas [:tilleulv]

Reply

Marsh Posté le 08-09-2010 à 21:01:48   

Reply

Marsh Posté le 08-09-2010 à 21:04:35    


sauf si la clause where n'est pas prise en compte pour le calcul ... sauf que dans ce cas là pourquoi elle est prise en compte pour VOLUME_CUMULE [:tilleulv]

Reply

Marsh Posté le 09-09-2010 à 08:56:20    

tu utilises quel sgbd ?

Reply

Marsh Posté le 09-09-2010 à 09:10:37    

En theorie volume_total devrai etre la somme de tous les volume par ISIN, que tu mettes un Where ou pas ce ne devrai pas changer les chiffres.
 
Peut etre que ta query ne retourne que 7 resultats (limit quelque part?) alors qu'il y en a plus en realité?

Reply

Marsh Posté le 09-09-2010 à 18:44:04    

Reply

Marsh Posté le 13-09-2010 à 16:06:23    


Ben fallait le dire de suite, c'est évident qu'ils ne montrent que les premières lignes du résultat dans l'article... Ya rien à comprendre donc.


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 13-09-2010 à 19:49:45    

lasnoufle a écrit :


Ben fallait le dire de suite, c'est évident qu'ils ne montrent que les premières lignes du résultat dans l'article... Ya rien à comprendre donc.


 
Ouai, je sais. Mais pour un article d'initiation y a de quoi se méprendre !
Donc VOLUME_TOTAL = SUM(volume) WHERE isin = 'FR0000130007'  ...
 :jap:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed