Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    25

    [MySQL] MAX numero occorrenze consecutive

    Salve a tutti, stavo cercando il modo di creare una query che mi permettesse di ottenere, dato il valore di un record, il numero max di volte consecutive che appare in tabella. Mi spiego meglio:

    data la tabella "Sfide" con 3 campi id,vincente,perdente

    1|F|B
    2|A|C
    3|C|B
    4|A|G
    5|A|F
    6|A|D

    Come dovrei impostare la query per ottenere che A ha vinto al max 3 sfide consecutive (id 4,5 e 6)?

    Io avevo pensato ad una normale query coadiuvata da del codice PHP in cui alla fine del ciclo while nella variabile $max_conteggio avrei il risultato ottenuto:

    Codice PHP:
    $consecutive_win="SELECT vincente FROM Sfide ORDER BY id ASC";
     
    $query=mysql_query($consecutive_win) or die (mysql_error());    
       
    $conteggio=0;$max_conteggio=0;
          while(
    $records=mysql_fetch_array($query))
           {
             if(
    $records['vincente']=='A'$conteggio++;
             if(
    $records['vincente']!='A'$conteggio=0;
                if(
    $max_conteggio<$conteggio$max_conteggio=$conteggio;
          } 
    Secondo voi c'è la possibilità di ottenere lo stesso risultato solo con un query mysql?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    25
    Piccola correzione al codice, ma la domanda resta: È possibile far tutto con una query SQL ?
    Codice PHP:
    $consecutive_win="SELECT vincente,perdente FROM Sfide ORDER BY id ASC";
     
    $query=mysql_query($consecutive_win) or die (mysql_error());    
       
    $conteggio=0;$max_conteggio=0;
          while(
    $records=mysql_fetch_array($query))
           {
             if(
    $records['vincente']=='A'$conteggio++;
             if(
    $records['perdente']=='A'$conteggio=0;
                if(
    $max_conteggio<$conteggio$max_conteggio=$conteggio;
          } 

  3. #3
    il problema sono le tre vittorie "consecutive". Lo devi fare con il php. se invece vuoi le vittorie / perdite totali:

    codice:
    select  'vince', vincente, count(*) as tot
    from sfide
    group by vincente
    UNION
    select  'perde', perdente, count(*) as tot
    from sfide
    group by perdente

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    25
    Va bene, ti ringrazio...infatti ho adottato la soluzione da me proposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.