Visualizzazione dei risultati da 1 a 7 su 7

Discussione: group by & order by

  1. #1
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006

    group by & order by

    spiegatemi un po' come funge sta funzione di integrazione

    per quele motivo questa query

    codice:
    sql = "select modello,nuovo from camper group by nuovo order by modello"

    mi da questo errore
    Impossibile eseguire una query che non include l'espressione "modello" specificata come parte di una funzione di aggregazione.
    io alla fine voglio semplicemente raggruppare tutti i campi che hanno lo stesso valore per "nuovo" (campo boolean) e poi ordinare per il campo modello. :master:

  2. #2
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    sql = "select modello,nuovo from camper group by modello,nuovo order by modello"


    se si fa una group nella group by si devono mettere tutti i campi esposti salvo quelli frutto di calcoli tipo sum
    Forza la magica ROMA

  3. #3
    Immagina di raggruppare tutti i record per il campo nuovo.

    Immagina ora che ci sono 3 record con il campo nuovo = a "pippo" e 3 valori diversi per il campo modello.
    Come fa l'SQL a sapere se tu vuoi tenere il valore i, 2 o 3 del campo modello?

    Tutto questo per dirti che anche la query raggruppando per un campo deve proporre una sintassi di aggregazione per qualsiasi altro campo che richiami.
    Ad esempio

    codice:
    sql = "select Max(modello),nuovo from camper group by nuovo order by Max(modello)"
    codice:
    sql = "select Min(modello),nuovo from camper group by nuovo order by Min(modello)"
    e così via in base a cosa ti serve.

  4. #4
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    spetta...giusto...però la mia necessità è un po' diversa (e potrei risolverla col solo order by ma voglio sbariare oggi :-)
    codice:
    modello             nuovo
    
    modello1             true
    modello2             false
    modello3             true
    modello4             false
    modello5             true
    modello6             false
    dovrebbe restituirmi in questo ordine i record

    modello1
    modello3
    modello5
    modello2
    modello4
    modello6

    claro? voglio che prima mi raggruppi tutti quelli dove "nuovo" è true (o false...a seconda delle esigenze) e poi me li ordini per modello.

    ma quelli dove "nuovo" è false non devono essere esclusi
    :master:

    p.s.
    basterebbe un
    codice:
    sql = "select nuovo,modello from camper order by nuovo asc, modello desc"
    ma vojo capire se posso usare pure il group by

  5. #5
    USare in group by lì serve a poco, ma se te gusta puoi fare una cosa tipo

    codice:
    sql = "select Max(nuovo) as MaxNuovo, modello from camper order by MaxNuovo asc, modello desc"

  6. #6
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da weppos
    USare in group by lì serve a poco, ma se te gusta puoi fare una cosa tipo

    codice:
    sql = "select Max(nuovo) as MaxNuovo, modello from camper order by MaxNuovo asc, modello desc"
    condivido...ci azzecca pochissimo il group by ma volevo capire come funge

    ora mi è molto più chiara la situazione,opto per l'order by

  7. #7
    Originariamente inviato da s|n3
    ora mi è molto più chiara la situazione,opto per l'order by
    Se te gusta...

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.