|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 200 ![]() |
Slt à tous,
j'utilise un group by dans ma requête (car j'utilise SUM): Code :
Auriez vous une idéé please Merci d'avance |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
regarde du coté des fonctions analytiques
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 200 ![]() |
ah ouais c génial j'connaissais pas
un simple over(partition by...) suffit!! merci
|
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 200 ![]() |
je reviens sur ce sujet.
Le over(partition by...) marche bien mais...il ne regroupe pas les résultats comme un "Group By". Je m'explique: si j'ai 2 lignes ayant les memes colonnes colA,colB,colC,colD,colE alors avec le over(partition by...) j'obtient 2 lignes au lieu d'une. over(partition by...) -> colA,colB,colC,colD,colE, colF1+colF2 colA,colB,colC,colD,colE, colF1+colF2 comment obtenir qu'un seul ligne?je ne trouve pas |
|
|
00
|
|
|
#5 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
Tu veux une seule ligne à la place de deux mais laquelle si ce ne sont pas les mêmes valeurs pour les colonnes autre que colA? |
|
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 200 ![]() |
je précise:
j'ai les 2 lignes suivante dans ma table: colA,colB,colC,colD,colE, colF1 colA,colB,colC,colD,colE, colF2 Elles se diffère que par la colonne colF. C'est justement celle-ci que je SUM. Les autres colonnes sont identique. Suite au over(partition by colA) j'obtient 2 lignes identique colA,colB,colC,colD,colE, colF1+colF2 colA,colB,colC,colD,colE, colF1+colF2 alors que j'en veux qu'une: colA,colB,colC,colD,colE, colF1+colF2 Si les autres colonne colA,colB,colC,colD,colE était différente je comprendrais qu'il me sorte 2 lignes mais dans mon cas les 2 lignes ont les même colonne colA,colB,colC,colD,colE. C un peu + clair? en fait pour résoudre le problème temporairement j'ai fait un SUM simple avec un group by colA,colB,colC,colD,colE. |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Alors ma question est la suivante indépendamment du cas de ces deux lignes :
Y a-t-il des lignes ou colA a la même valeur mais les autres colonnes ont des valeurs différentes? En tout cas, contrairement à l'utilisation de GROUP BY, les fonctions analytiques ne changent pas le nombre de lignes du résultat. En fait, la fonction analytique est calculée pour chaque ligne du résultat |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 200 ![]() |
lorsque j'ai le même colA alors colA,colB,colC,colD,colE sont les même! seul colF est différent.
Et comme tu le dis, la fonction analytique est calculée pour chaque ligne du résultat c ca qui est dommage dans mon cas... |
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Alors GROUP BY sur les colonnes concernées ensemble est bien valable pour toi ...
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
|
||
|
00
|
|
|
#11 | |||
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
Si ColA détermine les valeurs des autres colonnes sauf ColF alors je ne vois pas pourquoi ne pas faire tout simplement un GROUB BY sur l'ensemble des colonnes! |
|||
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Oui, bien sûr. C'est pour ça que j'ai dit que c'était une piste, mais effectivement GROUP BY A,B,C,D,E est peut-être la meilleure solution. En tout cas ce n'est pas la même
|
|
00
|
Copyright © 2000-2012 - www.developpez.com