over (partition by ...) - SQL/NoSQL - Programmation
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
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é?
Marsh Posté le 09-09-2010 à 18:44:04
J'ai vu ca sur developpez.com :
http://lalystar.developpez.com/fonctionsAnalytiques/
Marsh Posté le 13-09-2010 à 16:06:23
pharaon2005 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.
Marsh Posté le 13-09-2010 à 19:49:45
lasnoufle a écrit : |
Ouai, je sais. Mais pour un article d'initiation y a de quoi se méprendre !
Donc VOLUME_TOTAL = SUM(volume) WHERE isin = 'FR0000130007' ...
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