|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 357 ![]() |
Bonjour
Je profite pas de la facilite de developpez.com mais vraiment je suis dans le flou meme pour la recherche sur google. Comme dans une discussion postée il ya quelques jours, j'ai une table comme suit ID Check 0 1 1 1 2 0 3 0 4 1 5 0 6 0 7 0 8 1 9 0 10 0 j'aimerai bien qu'une requete sql me sorte un resultat suivant ID_DEBUT ID_FIN 2 3 5 7 Soit pour chaque intervalle de lignes ayant un check a 0 par id croissant , retrouvé le premier et le dernier id sans tenir compte des dernieres lignes ayant un check a 0. Merci d' avance |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
|
||
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 357 ![]() |
bonjour laurent
Tout d abord un grand merci . Ca a fonctionne du premier coup. par contre avec la doc que j ai sous la main je narrive pas a comprendre la partie suivante Code :
decode(max(c) over (ORDER BY id DESC), 1,id-row_number() over (partition BY c ORDER BY id)) |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
Code :
max donne la plus haute valeur de c pour la ligne courant et les suivantes (plus littéralement pour les lignes entre la prémière et la ligne courante trié par ID en ordre descendant) OK? |
||||
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 357 ![]() |
Oui merci , je ne comprenait pas la partie max(c) en fait . Mais avec ton exemple je comprend que c est l astuce pour ne pas recuperer les dernieres lignes a 0.
J aurai une dernier question si a chaque ligne est associee une date , comment je peut recupere la min(date) et la max(date) pour chaque ligne dans la meme requete. Pour finir felicitations pour ton livre j ai impatience qu il soit disponible . J ai moi meme achete le "ORACLE TUNING definitive Guide" the D. Burleson et je trouve la qualite des ouvrages de Rampant de tres haut niveau |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
|
||
|
00
|
|
|
#7 | ||
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 357 ![]() |
Merci
Je me suis lance dans l aventure avec succes maintenant, je voulais ajouter une collonne "CONTIENT UNE DATE A NULL", j y suis arriver avec la requete suivante Code :
Code :
decode(min(d) keep (dense_rank first ORDER BY d nulls first),NULL,'OUI','NON' ) Code :
decode(first_value(d) over (ORDER BY d),NULL,'OUI','NON' ) ORA-00979: not a GROUP BY expression Je pensait pourtant avoir compris le mecanisme. De plus lors de mes recherches pour cette requete , je suis tombé sur les clause MODEL et SPREADSHEET. Ces clauses pourrait elle me permettre d'afficher sous un contient_null = OUI la liste des id qui ont la date a null. Merci d'avance. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com