Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MYSQL] count che non counta

    Problema:
    tabella province (id, nome_provincia)
    e
    tabella comuni(id, id_provincia , nome_comune)

    Nella tabella provincia ho solo il record "1 , LECCE"
    Nella tabella comuni ho 30 record che sono i comuni della provincia di LECCE

    SELECT * FROM province , comuni WHERE comuni.id_provincia = province.id

    Tira fuori 30 record

    SELECT * FROM province , comuni WHERE comuni.id_provincia = province.id GROUP BY province.id

    Tira fuori 1 record


    SELECT count(*) FROM province , comuni WHERE comuni.id_provincia = province.id GROUP BY province.id

    Mi dice che sono 30 .... PERCHE'????
    Non dovrebbe dirmi 1 ?

  2. #2
    prima di tutto c'è un errore
    e mi sembra strano che non lo segnali, lo provato pure io e non lo segnala nemmeno a me
    codice:
    SELECT * FROM province , comuni 
    WHERE comuni.id_provincia = province.id 
    GROUP BY province.id
    non puoi mettere nella select list più campi di quanti ne hai nella group by list, devono essere almeno li stessi.
    comunque è normale che ti restituisca 30 e non 1 perchè il COUNT conta tutti i record nonostante li raggruppi per provincia. Per contare il numero di provincie devi contare solo le provincie che hanno id diverso così:
    codice:
    SELECT COUNT(DISTINCT province.id) FROM province , comuni 
    WHERE comuni.id_provincia = province.id 
    GROUP BY province.id
    www.matteosteri.it

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Arrivato tardi alla risposta...
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    mi dispiace leleft!
    dai spazio anche agli altri rispondi sempre tu!!!

    scherzo
    www.matteosteri.it

  5. #5
    ok, grazie, avevo risolto con la distinct, il dubbio che avevo era sul fatto che la count mi conta i record a prescindere della group by.

    Grazie ancora

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.