Topic: Pubblico
- Composto da 4 Posts di 2 Utenti.
|
06 Agosto, 2011 09:28
|
#1
|
frankie64
Utente
Registrato: Aug, 2011
Posts: 2
Offline
|
Ciao a tutti. Ho una tabella-database così costituita: Id**Value 1 0 2 0 3 1 4 1 5 1 6 0 7 0 8 0 9 1 10 0 11 1 12 0 Secondo voi, desiderando una select che mi restituisca come valore il numero max degli zero consecutivi ( in tabella la serie di valori zero max consecutivi è 3) e il numero max degli 1 consecutivi ( anche in questo caso è 3), come bisognerebbe agire? Grazie a chi vorrà rispondere. frankie
|
|
10 Agosto, 2011 01:30
|
#2
|
fuser
Utente
Registrato: Aug, 2011
Posts: 86
Offline
|
1SET @z = 0;
2SELECT IF(value=0, @z:=(@z+1), @z:=0)
3FROM nome_tabella
4ORDER BY id;
Non l'ho provata, ma dovrebbe essere così. Però MySQL non è lo strumento migliore per fare questi calcoli.
|
|
10 Agosto, 2011 10:33
|
#3
|
frankie64
Utente
Registrato: Aug, 2011
Posts: 2
Offline
|
Grazie della risposta. Sembra che tutto vada bene.
|
|
10 Agosto, 2011 11:56
|
#4
|
fuser
Utente
Registrato: Aug, 2011
Posts: 86
Offline
|
1SET @z = 0, @max_z = 0;
2SELECT IF(value=0, @z:=(@z+1), @z:=0), IF(@z > @max_z, @max_z:=@z, 0)
3FROM nome_tabella
4ORDER BY id;
In realtà mi ero sbagliato: quello che ho scritto ieri conta solo l'ultima sequenza di zeri. Aggiungendo questa IF, la sequenza più lunga rimane in @max_z.
|
Condividi su:
Loggati o
Registrati per replicare