Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: GROUP BY

  1. #1

    GROUP BY

    Ciao a tutti

    vorrei un aiuto...

    scusatemi per il titolo non sapevo cosa mettere...

    -----------------------
    tabella1

    nome | attivo

    giuseppe | 1
    maria | 1
    veronica | 1
    franco | 1
    -----------------------
    tabella2

    nome | attivo

    giuseppe | 1
    giuseppe | 1
    maria | 1
    veronica | 1
    veronica | 1
    franco | 0
    -----------------------
    SELECT tabella1.nome,COUNT(tabella2.nome)
    FROM tabella2
    RIGHT JOIN tabella1
    ON tabella1.nome=tabella2.nome WHERE tabella1.attivo = '1'
    GROUP BY tabella1.nome ORDER BY COUNT(tabella2.nome) DESC
    -----------------------
    Stampo i nomi attivi della tabella1 con il numero dei nomi inseriti nella tabella2

    giuseppe | 2
    veronica | 2
    maria | 1
    franco | 1
    -----------------------
    vorrei visualizzare solo il numero dei nomi attivi nella tabella2

    esempio il nome franco non e attivo nella tabella2 e deve visualizzare 0

    giuseppe | 2
    veronia | 2
    maria | 1
    franco | 0

    come posso risolvere?

  2. #2
    Puoi provare aggiungendo un HAVING tabella2.attivo=1...
    I database... la mia passione + o -

  3. #3
    scusami..

    che parte lo devo aggiungere?

  4. #4
    devi usare sum(tabella2.attivo), non count(tabella2.nome)

  5. #5
    Il sum mi fa la somma..

    Invece vorrei che al posto mettere 1 potrei mettere anche la parola attivo oppure sospeso

    Come posso fare?

  6. #6
    giuseppe, questa è una cosa diversa da quella che hai chiesto. questo è il risultato che cercavi

    giuseppe | 2
    veronia | 2
    maria | 1
    franco | 0

    e lo ottieni con sum(). al posto di quale "1" vorresti scrivere attivo/sospeso?

  7. #7
    Tabella2

    nome | attivo

    giuseppe | attivo
    giuseppe | attivo
    maria | attivo
    veronica | attivo
    veronica | attivo
    franco | sospeso

  8. #8
    non capisco, cosa hai postato? commenta un po' quello che scrivi, dai....

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da giuseppe1986 Visualizza il messaggio
    Ciao a tutti

    vorrei un aiuto...

    scusatemi per il titolo non sapevo cosa mettere...

    -----------------------
    tabella1

    nome | attivo

    giuseppe | 1
    maria | 1
    veronica | 1
    franco | 1
    -----------------------
    tabella2

    nome | attivo

    giuseppe | 1
    giuseppe | 1
    maria | 1
    veronica | 1
    veronica | 1
    franco | 0
    -----------------------
    SELECT tabella1.nome,COUNT(tabella2.nome)
    FROM tabella2
    RIGHT JOIN tabella1
    ON tabella1.nome=tabella2.nome WHERE tabella1.attivo = '1'
    GROUP BY tabella1.nome ORDER BY COUNT(tabella2.nome) DESC
    -----------------------
    Stampo i nomi attivi della tabella1 con il numero dei nomi inseriti nella tabella2

    giuseppe | 2
    veronica | 2
    maria | 1
    franco | 1
    -----------------------
    vorrei visualizzare solo il numero dei nomi attivi nella tabella2

    esempio il nome franco non e attivo nella tabella2 e deve visualizzare 0

    giuseppe | 2
    veronia | 2
    maria | 1
    franco | 0

    come posso risolvere?
    Dall'esempio che dai. Basta un semplice select nome, count(*) from tabella2 group by nome
    per arrivare al risultato

    giuseppe | 2
    veronia | 2
    maria | 1
    franco | 0
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Dall'esempio che dai. Basta un semplice select nome, count(*) from tabella2 group by nome
    per arrivare al risultato

    giuseppe | 2
    veronia | 2
    maria | 1
    franco | 0
    count(*) ti dà 1 anche per franco, anche se attivo=0...

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.