Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    46

    [MYSQL] funzione count e subquery

    Ho la tabella elenco_film così costruita:

    | Codice Argomento | Titolo | Regista |
    | 001 | Cenerentola | Disney |
    | 001 | Biancaneve | Disney |
    | 001 | Toplino | Disney |
    | 003 | Via col vento | Victor Fleming |
    | 003 | Casablanca | Michael Curtiz |
    | 005 | Capitani coraggiosi | Victor Fleming |


    Vorrei fare una query che mi riporti tutti i campi della tabella più uno con il totale dei film per regista.
    Vorrei ottere quindi una cosa del genere:

    | Codice Argomento | Titolo | Regista | Count|

    | 001 | Cenerentola | Disney | 3 |
    | 001 | Biancaneve | Disney | 3 |
    | 001 | Toplino | Disney | 3 |
    | 003 | Via col vento | Victor Fleming | 2 |
    | 005 | Capitani coraggiosi | Victor Fleming | 2 |
    | 003 | Casablanca | Michael Curtiz | 1 |

    Questo il misero tentativo:

    select *,(select count(*) from elenco_film group by regista) from elenco_film order by regista

    Naturalmente la query non funziona perchè il count mi ritorna più di un record.

    Vi ringrazio in anticipo per qualsiasi suggerimento

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select tab1.codice,tab1.titolo,tab1.regista,tab2.quanti 
    from tabella as tab1
    left join
    (select regista,count(regista) as quanti
    from tabella 
    group by regista) as tab2
    on tab1.regista = tab2.regista

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    46
    Originariamente inviato da nicola75ss
    codice:
    select tab1.codice,tab1.titolo,tab1.regista,tab2.quanti 
    from tabella as tab1
    left join
    (select regista,count(regista) as quanti
    from tabella 
    group by regista) as tab2
    on tab1.regista = tab2.regista
    Grazie!! Era decisamente quello che mi serviva!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prego. Ovviamente se ti servono tutti i campi della tabella di origine puoi anche abbreviare la prima riga in

    select tab1.*,tab2.quanti



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.