Conta max sequenza consecutiva | La nostra community

Topic: Pubblico - Composto da 4 Posts di 2 Utenti.

06 Agosto, 2011 09:28 #1
frankie64
Utente

frankie64
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

fuser
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

frankie64
Registrato: Aug, 2011
Posts: 2
Offline

Grazie della risposta. Sembra che tutto vada bene.

10 Agosto, 2011 11:56 #4
fuser
Utente

fuser
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