Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: [MySQL] Subquery Count

  1. #1

    Subquery Count

    Ciao Raga, urge aiuto, con subquery count, ci stò provando da un pò ,
    ho realizzato le queries e funzionano ma singolarmente,
    se li metto tutte insieme non va, esempio di conteggio tipo cliente B visitati:

    codice:
    SELECT COUNT( * ) AS Tot_B_visitati_x_agente 
    FROM clienti AS c, visite AS v
    WHERE c.cod_cliente = v.codice_cliente AND c.tipo='B'
    GROUP BY v.agente
    Come faccio a creare in unica tabella i seguenti risultati con le 2 tabelle sotto riportate:

    Totale clienti
    Totale clienti di tipo B
    Totale clienti di tipo M
    Totale clienti di tipo S
    Totale clienti visitati di tipo B
    Totale clienti visitati di tipo M
    Totale clienti di tipo B visitati da giorgio
    Totale clienti visitati da pippo


    codice:
    tabella clienti
    idCliente    cod_cliente	         tipo
    1	            0001                   B
    2	     	    0002	           S
    3	      	    0003	           B
    4	      	    0004	           B
    5	      	    0005	           B
    6	            0006	           M
    7	      	    0007	           S
    8	      	    0008	           S
    9	      	    0009	           S
    10	      	    00010	           S
    
    
    tabella visite
    idVisita      agente     codice_cliente	       
    1	      giorgio	       0001               
    2	      pippo	       0002	          
    3	      pippo	       0010	           
    4	      marco	       0004	          
    5	      giorgio	       0005	           
    6	      giorgio	       0009


    Grazie





    .

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    ciao,
    allora, se la query che hai scritto tu deve ritornare il totale di clienti di tipo B che sono stati visitati, allora devi togliere il group by agente...

    se metti la clausola gruop by, prima ti fa il join tra le tabelle, poi ti raggruppa secondo l'agente, e poi per ogni gruppo ti fa il count, in quel modo quello che ti viene restituito è il numero di clienti di tipo B visitati per ogni agente

    se invece togli la clausola group by, prima verrà effettuato il join, quindi verranno presi tutte le tuple della tabella clienti per cui il tipo è B e il cui codice è presente nella tabella visite, e poi verrà fatto il count...e quindi verrà restituito il numero di clienti visitati di tipo B.

    per le altre query il ragionamento è analogo...prova a farle e se non ce la fai le vediamo insieme...

    spero di essere stato chiaro!
    Jekkil

  3. #3
    Grazie davvero, gentilissimo,
    mi metto subito all'opera !





    .

  4. #4
    Ok per tirare fuori un conteggio di un valore, ma se volessi tirare fuori tutti i conteggi che avevo indicato come faccio a strutturare la query ?

    E' qui che mi perdo, non capisco come mettere in join le tabelle e includere i COUNT() ed ottenere il tutto in un unica tabella





    .

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    prova a postare una query che non riesci a fare che la vediamo insieme...un consiglio che posso darti quando devi usare il count (naturalmente è solo un consiglio, io lo uso senza problemi, ma magari per te non è il max).

    Fai prima la query senza count, e vedi se ritorna quello che ti aspetti, nella maggior parte dei casi, applicare il count significa solo fare un conteggio delle tuple che ti vengono ritornate senza count.

    Comunque, definisci bene una query che vuoi fare e posta quello che hai provato a fare che la correggiamo insieme...
    Jekkil

  6. #6
    OK Jekkil,
    Allora diciamo che sono riuscito a fare questa cosa, che ovviamente non è corretta.

    xchè mi restituisce raggruppati per agenti il numero di clienti visitati da ognuno, quello che volevo io era sapere oltre al numero di clienti il tipo di appartenenza, dove sbaglio ?


    codice:
    SELECT COUNT( tipo ) AS Tot, tipo, agente
    FROM clienti AS tb1
    LEFT JOIN visite AS tb2 ON tb1.cod_cliente = tb2.codice_cliente
    GROUP BY agente
    ORDER BY tb2.agente ASC



    .

  7. #7
    Ciao,

    come da regolamento ci vuole la piattaforma in uso indicata nel titolo, cosa stai usando?

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Ciao,

    dato che non ho ricevuto risposte chiudo il thread, se mi comunicate in PVT il nome della piattaforma ed il link al thread sistemo.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Ciao,

    ho riaperto e corretto il titolo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Grazie 1000

    Adesso spero che qualcuno mi venga in soccorso.








    .

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.