Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Select count

  1. #1
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535

    Select count

    Domandinda facile facile…

    SQL… posso effettuare una select count per campo conteggiando + campi insieme??
    Cioè io ho tre campi : frutta, verdura, latticini.
    Voglio un’estrazione unica che mi dica quanti record ci sono nel campo frutta che hanno valore “pera”, quanti nella verdura che hanno valore “cavolo”, e quanti nei latticini che hanno valore “formaggio”.
    Tutti in un’unica select count..
    Come posso fare???

  2. #2
    dovrebbe essere una roba simile:

    select frutta,verdura,latticini,count(*)
    from tabella
    where frutta='pera' or verdura='insalata' or latticini='mozzarella'
    group by frutta,verdura,latticini
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Uhm...

    Non ho ben capito cosa intendi per "conteggiare insieme".

    Ciò che puoi fare è contare quanti record hanno i campi impostati come hai detto tu (contemporaneamente), oppure puoi contare quanti record totali hanno uno dei campi impostato secondo uno dei criteri che hai prestabilito...

    Ma se il tuo scopo è quello di ottenere 3 conteggi dei record che rispettano singolarmente i 3 criteri che hai descritto, allora credo che tu debba per forza creare 3 statement SQL separati.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    secondo me pippo è sulla buona strada, ma credo che forse la siantssi dovrebbe assomigliare a questa:

    codice:
    Select Count(*), Campo1,Campo2,Campo3 
    From Tabella 
    Where Campo1 = x, Campo2=y, Campo3=z
    Il group by dovrebbe essere automatico



  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Scusa, non comprendo l'uso della virgola nella clausola WHERE.

    La clausola WHERE deve esprimere la condizione di ricerca che consente di determinare se un campo deve essere prelevato dalla query oppure no. L'espressione che segue la WHERE deve avere un valore booleano, sì/no, che indichi se il record è valido oppure da scartare, quindi la virgola perde di significato.

    Il problema è questo: usando la forma
    WHERE (Campo1 = x) and (Campo2=y) and (Campo3=z)
    si ottengono tutti i record che rispecchiano i criteri, quindi tutti quelli che hanno nel contempo il Campo1=x, il Campo2=y e il Campo3=z.

    Usando invece la forma
    WHERE (Campo1 = x) or (Campo2=y) or (Campo3=z)
    otteniamo tutti i record che hanno almeno il Campo1=x, oppure il Campo2=y o il Campo3=z.

    Nel primo caso, tutte e 3 le condizioni devono essere rispettate, nel secondo basta che ne sia rispettata anche solo una.

    Veniamo al nostro caso. Se Elena78 vuole trovare tutti record che hanno Campo1=x, successivamente quelli che hanno Campo2=y, e dopo ancora quelli che hanno Campo3=z, deve necessariamente eseguire una COUNT per ciascun caso, dato che si tratta di 3 elaborazioni distinte; in poche parole, deve eseguire prima

    SELECT COUNT(*) FROM NomeTabella
    WHERE Campo1=x

    poi

    SELECT COUNT(*) FROM NomeTabella
    WHERE Campo2=y

    e così via...

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    mi sa che non si può fare, sto provando varie sintassi ma non ottengo il risultato che vorresti....


    si occhei, ho dimenticato i booleani...

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.