|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mai 2008 Messages : 260 ![]() |
Bonjour,
Sous FB 2.1 je cherche à récupérer le nombre de valeurs identiques consécutives (classement par date) dans une table Par exemple : date Valeur 01/01/10 09:10:00 1 01/01/10 09:20:00 2 01/01/10 09:30:00 2 01/01/10 09:40:00 2 01/01/10 09:50:00 3 01/01/10 10:00:00 3 01/01/10 10:10:00 2 Dans cet exemple il faudrait retourner 1*1,3*2, 2*3 et 1*2 Est ce faisable avec une requete SQL? Merci |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
Bonjour,
Code sql :
ORDER BY DATE DESC =décroissant
__________________
Seul le Savoir est le Pouvoir |
||
|
|
00
|
|
|
#3 | |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Citation:
parsque la c'est pas possible simplement.
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : mai 2008 Messages : 260 ![]() |
Bonjour,
Non il n'y a pas d'autre colonne. Je me demandais si avec des requetes recursives on ne pouvait pas faire quelque chose mais de ces requetes là je ne connais que le nom |
|
|
00
|
|
|
#5 | ||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 3 609 ![]() |
sans tester , je proposerais
Code :
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
C'est faisable facilement avec une PS.
|
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
00
|
|
|
#8 | ||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Quelque chose comme :
Code :
Code :
|
||||
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : mai 2008 Messages : 260 ![]() |
Bonjour Sergio,
Cette requete ne me retourne pas le nombre de valeurs identiques qui se suivent mais le nombre total de valeurs identiques. Merci |
|
|
00
|
|
|
#10 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Et comme ça ?
Code :
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
||
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
Désolé pour mon post calou_33, il etait HS. Je pensais que vous cherchiez le classement par date. Je n'ai pas réalisé la difficulté de votre problème.
__________________
Seul le Savoir est le Pouvoir |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : mai 2008 Messages : 260 ![]() |
Merci pour les PS je vais tester ca
Freud pas de pb |
|
|
00
|
|
|
#13 | |
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 3 609 ![]() |
Citation:
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius |
|
|
|
00
|
|
|
#14 | ||||||||
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 213 ![]() |
c'est surement améliorable, et surtout il nous manque les windows function pour faire mieux, mais à priori c'est faisable en SQL avec les CTE et sans récursivité
Code :
Code :
Code :
Code :
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
||||||||
|
00
|
|
|
#15 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
humm diabolique ces CTE.
Mais la PS sera plus performante car il n'y a qu'un seul balayage de la table. Il me semble qu'en plus le code de la CTE proposée ne fonctionne pas si on ajoute par exemple : Code :
INSERT INTO TA1 (F_DT, F_V) VALUES ('01/01/2010 10:20:00.000', 9);
|
|
|
00
|
|
|
#16 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Petite rectification de la PS que j'ai proposé :
Code :
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
||
|
|
00
|
|
|
#17 | ||
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 213 ![]() |
Citation:
Citation:
désolé
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
||
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Je pense que c'est à cause du group by de cte2 qui induit un tri.
je proposerai plutôt un truc du style : Code :
|
||
|
|
00
|
|
|
#19 | ||||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Dans ma PS, j'ai remis a zéro le comptage des valeurs identiques consécutives, lors d'un changement de date.
donc pour Code :
01/01/2010 1*1 01/01/2010 1*2 02/01/2010 2*2 03/01/2010 2*3 03/01/2010 1*2 Ce que je n ai pas fait dans la requête cte. Pour cela il faut la changer comme ci dessous : Code :
Code :
|
||||||
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 213 ![]() |
oui, le passage par "intervalles" est cool, merci d'avoir corrigé
juste une critique sur celle qui renvoie les dates, d'abord tu fais un cast par date , ce qui fait que l'info est moyennement passionnante, donc ok on peux changer ça pour un timestamp, mais du coup toi tu renvoies la fin de l'intervalle, alors que je cherchai à indiquer le début de l'intervalle
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
Copyright © 2000-2012 - www.developpez.com