Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    contare i duplicati in mysql

    immaginate di avere una tabella cosi

    codice:
    [id | lettera]
     0     a
     1     a
     2     b
     3     c
     4     c
     5     c
    in base a quante volte si ripete 'lettera' dovrei fare l'output cosi:

    c (si ripete 3 volte)
    a (2volte)
    b (1volta)

    è possibile con una query?

  2. #2
    possibilmente ritornare anche le volte che si ripetono le varie lettere ( senza fare un'altra query )


  3. #3
    codice:
    SELECT lettera, COUNT(lettera) AS numero FROM tabella GROUP BY lettera
    ORDER BY numero DESC
    ciao

  4. #4
    Originariamente inviato da alcatraz69
    codice:
    SELECT lettera, COUNT(lettera) AS numero FROM tabella GROUP BY lettera
    ORDER BY numero DESC
    ciao

    grasssssieeee, gentilissimo



  5. #5
    un'altra piccola cosa, immagina che ci sia un altro campo time:


    codice:
    [id | lettera | time]
     0     a        2
     1     a        1
    
     2     b        1
    
     3     c        1
     4     c        2
     5     c        3

    la stessa query di prima solo che deve ritornare il valore di time corrispondente alla lettera più alto cioè:

    c 3 volte, 3 (che è il time)
    a 2 volte, 2 (^^)
    b 1 volta, 1 (^^)

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    codice:
    SELECT lettera, COUNT(lettera) AS numero, MAX(time) AS time FROM tabella GROUP BY lettera, time
    ORDER BY numero DESC
    un po' di iniziativa almeno

  7. #7
    Originariamente inviato da kuarl
    codice:
    SELECT lettera, COUNT(lettera) AS numero, MAX(time) AS time FROM tabella GROUP BY lettera, time
    ORDER BY numero DESC
    un po' di iniziativa almeno


    cmq: quel group by, c'è biosgno pure di time? non basta solo lettera?

  8. #8
    ragazzi mi servirebbe un'altra query..

    solito schemino, ecco la tab:
    codice:
    [ field1 | field2 ]
        0       a
        1       a
        2       a
        3       b
        3       b

    in pratica vorrei che mysql mi restituisse i risultati cosi:

    a + 0,1,2
    b + 3,3

    lo stesso risulatato si potrebbe avere con 2 query:

    select field2 from tab group by filed2

    poi nel while
    select field1 where filed2='valore del while'


    però non vorrei fare cosi... non c'è un'altra funzioncina carina come max count ecc?


  9. #9
    codice:
    SELECT CONCAT(field2, '+', GROUP_CONCAT(field1 ORDER BY field1 SEPARATOR ',')) 
    FROM tabella GROUP BY field2
    ORDER BY field2
    ciao

  10. #10
    Originariamente inviato da alcatraz69
    codice:
    SELECT CONCAT(field2, '+', GROUP_CONCAT(field1 ORDER BY field1 SEPARATOR ',')) 
    FROM tabella GROUP BY field2
    ORDER BY field2
    ciao

    troppo complicata... (imho) pensavo servissero meno funzioni (può essere eseguita anche su 10000+ record)...

    forse a questo punto meglio se faccio le 2 query?


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.