Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Query acchiappatutto

  1. #1

    Query acchiappatutto

    Ciao a tutti.
    Non sono un grande esperto di sql, quel poco che conosco è fornito da documentazione online e qualche sbattimento di testa su taluni problemini. E oggi sto sbattendo la testa proprio su uno di questi, che, con molta probabilità, qualche esperto risolve nel giro di mezzo minuto.

    Prologo, questa la tabella (di test, giusto per semplificare)


    NOME POSIZIONE
    pippo 2
    pluto 1
    paperino 3
    pippo 3
    pluto 2
    paperino 1


    Ora, con singole query posso recuperare quel che mi serve

    SELECT NOME,COUNT(*) FROM TABELLA GROUP BY NOME
    corse disputate = il risultato

    SELECT NOME,COUNT(*) FROM TABELLA WHERE POSIZIONE=1 GROUP BY NOME
    arrivi primo = il risultato

    indice% = arrivi primo / corse disputate

    Vorrei ora, CON UNA SINGOLA QUERY, tirare fuori questo dato "indice%". E' fattibile? Ci sto provando in tutti i modi con annidamenti etc... ma non c'è verso, sbaglio sicuramente a livello sintattico, oltre che poi non capire come poter ordinare la select con un ORDER BY data la dinamicità del risultato.

    Grazie a chiunque

  2. #2
    raggruppa secondo nome e posizione, poi fai i conti

  3. #3

  4. #4
    Originariamente inviato da optime
    lasciati ispirare da questo articolo http://www.dicesare.com/programmazio...-di-risultati/
    così non raddoppia i tempi d'esecuzione dovendo fare due select?!

  5. #5
    non so, tu come faresti?

  6. #6
    sarebbe anche interessante sapere che db viene usato

  7. #7
    anzi, nun me piace più il doppio raggruppo che ho suggerito...

    select nome,(-sum(posizione=1) / count(*)) as indice from tabella group by nome

    che dite?!

  8. #8
    Originariamente inviato da optime
    sarebbe anche interessante sapere che db viene usato
    ... che cambia?
    Sono cmq su IIS6 e db Access su file.

    Originariamente inviato da cicciopie II
    select nome,(-sum(posizione=1) / count(*)) as indice from tabella group by nome
    Interessante. Vedo se funziona.
    Ulteriore questione: e -se funzionasse- volendo ordinare per l'indice trovato, temo non basti un "ORDER BY indice DESC", giusto? :master:

  9. #9
    Originariamente inviato da verbal_666
    ... che cambia?
    Sono cmq su IIS6 e db Access su file.
    cambia tutto. se avessi un db che supporta le SP risolveresti la cosa molto più facilmente!

  10. #10
    Originariamente inviato da optime
    cambia tutto.


    se avessi un db che supporta le SP risolveresti la cosa molto più facilmente!
    ... e se fossi alto 1.78, e mi chiamassi Johnny di nome e Depp di cognome, sarei un fico di lusso :quote: :quote: :quote:

    Grazie mille dei consigli, cmq. A parte gli scherzi non posso cambiare provider, quello ho e quello devo utilizzare. Sono in hosting.

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.