Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    [SQL] query con Group By + Order By

    la mia query ha questa forma

    SELECT count(campo1) AS Numero
    FROM tabella
    WHERE condizione
    GROUP BY campo2
    ORDER BY Numero

    in pratica conto dei campi raggruppati e vorrei che il risultato fosse ordinato dal campo più frequente al meno frequente, o viceversa

    ma mi dà errore quando aggiungo ORDER BY
    lo stesso se metto ORDER BY prima di GROUP BY
    è possibile mettere entrambe le clausole nella stessa query?
    se sì come si fa?

    thx
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    certo che si possono mettere tutte e e due le clausole!

    il problema nasce perchè sbagli la query.
    secondo me dovresti mettere nella clausola select anche campo2 perchè atrimenti numero sarà sempre uguale.

    prova e fammi sapere perchè non l'ho testato. comunque ci provo anche io e ti farò sapere.
    www.matteosteri.it

  3. #3
    Originariamente inviato da tommisceddu
    secondo me dovresti mettere nella clausola select anche campo2 perchè atrimenti numero sarà sempre uguale.
    Se non si mette il nome del campo2 anche nella Select, allora si otterà un errore di sintassi SQL.


  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    secondo me no...
    la selezione viene fatta DOPO il raggruppamento
    quindi non dovrebbe essere quello il motivo

    cioè... se io da quella query tolgo l'order by viene fuori giusto, con tutti i numeri diversi. soltanto non ordinati
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    ho provato la query sotto e mi funziona sia così che aggiungendo campo2 nella select. poi non so come effettivamente sia strutturata la tua tabella ma io ho creato una tabella con 3 campi e la chiave composta da tutti e tre i campi

    codice:
    SELECT count(campo1) as num
    FROM `tabella`
    GROUP BY campo2
    ORDER BY num
    www.matteosteri.it

  6. #6
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    ok
    proverò anch'io col tuo esempio
    grazie mille per la disponibilità
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

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