Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    elenco ordinato per numero di ricorrenze

    Non so se il titolo è molto chiaro
    Ancora un aiutino please...questo SQL non mi entra in testa...

    ho una tabella (MYSQL) che è fatta così:

    -id
    -id_utente
    -sport_utente

    1, 10, volley
    2, 10, basket
    3, 10, calcio
    4, 11, calcio
    5, 12, calcio
    6, 12, volley

    voglio una lista degli sport che fanno gli utenti ordinata per numero di utenti che lo fanno.

    calcio (3 utenti)
    volley (2 utenti)
    basket (1 utente)

    com'è la sintassi SQL por ricavere questo recordset?
    Grazie
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  2. #2
    codice:
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.mapPath("\samples\mdb-database\db.mdb")
    
    sql = "SELECT DISTINCT(sport_utente) AS sport, COUNT(id_utente) AS persone FROM tabella GROUP BY sport_utente ORDER BY COUNT(id_utente) DESC"
    
    set rs = conn.execute(sql)
    
    	if not rs.eof then
    		do until rs.eof
    			response.write rs("sport") & " (" & rs("persone") & ")
    "
    			rs.moveNext
    		loop
    	end if
    	
    rs.close
    set rs = nothing
    
    conn.close
    set conn = nothing
    %>

  3. #3
    Mi da questo errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)
    Uso non valido di una funzione di raggruppamento
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  4. #4
    ho risolto mettendo ORDER BY persone
    grazie mille MEMS!!!
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  5. #5
    Originariamente inviato da centoiso
    Mi da questo errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)
    Uso non valido di una funzione di raggruppamento
    beh, io ho fatto un test con Access.
    Tu usi mySQL.
    Evidentemente la sintassi e l'uso delle funzioni di aggregazione cambia e degli ALIAS.

  6. #6
    Mi accodo qui... perchè vedendo l'esempio soprà ho cercato invano di risolvere un problema simile.
    Il fatto che non ho ancora dimestichezza con le funzioni di raggruppamento...

    Vi spiego:
    Ho ragruppato con GROUP BY dei nomi di utenti e la relativa data di inserimento di ogni record, ordinandoli by data DESC.

    Quindi mi ritrovo con NOME (4) & DATA
    NOME (1) & DATA
    e così via....

    La lista deve elencare sempre l'ultimo nome inserito e la relativa data,
    se ad esempio ci sono 4 nomi uguali bisogna che la data del gruppo sia quella più recente invece ora mi fa il contrario.

    vi faccio vedere la SELECT che uso ora.
    SELECT nome, data, COUNT(nome) AS contali FROM tabella WHERE utente= '" & luciano & "' GROUP BY nome ORDER BY data"

    Responde.write nome & contali & data
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.