Conteggio record con due campi uguali in una query di raggruppamento.

di il
17 risposte

Conteggio record con due campi uguali in una query di raggruppamento.

Buonasera,
ho creato una query di raggruppamento ed avrei la necessità di contare il numero di record che presentano due campi uguali.
Il risultato che dovrei avere è il seguente, ad esempio:

ID | frutta | colore | num_record
------------------------------------------------------
1 | mela | rosso | 1
2 | mela | giallo | 1
3 | pesca | rosso | 1
4 | pesca | giallo | 1
5 | pera | rosso | 2
6 | pera | rosso | 2

Ho difficoltà a scrivere il predicato SQL in access.
Grazie.

17 Risposte

  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Ovviamente non cerco la pappa pronta ma un suggerimento.
    Grazie.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Prova a creare un campo Calcolato dato dalla concatenazione dei 2 campi [Frutta + Colore] e raggruppare su questo ed inserendo un Count sullo stesso campo inserito una seconda volta.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Si. Ho capito. Giusto per curiosità... esiste un modo più diretto, ad esempio utilizzando una subquery?
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Altra soluzione è:
    1. Crea (con procedura guidata magari) una query ricerca duplicati sulla sola coppia campi [frutta] e [colore]. Non includere altri campi in questa query
    2. Riapri la query in visualizzazione struttura ed elimina la scritta >1 che troverai
    3. Salva la query e eseguila
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    eddy1973 ha scritto:


    Si. Ho capito. Giusto per curiosità... esiste un modo più diretto, ad esempio utilizzando una subquery?
    Fammi capire... cerchi un metodo più diretto con una SUB query...?
    Mah....
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    OsvaldoLaviosa ha scritto:


    Altra soluzione è:
    1. Crea (con procedura guidata magari) una query ricerca duplicati sulla sola coppia campi [frutta] e [colore]. Non includere altri campi in questa query
    2. Riapri la query in visualizzazione struttura ed elimina la scritta >1 che troverai
    3. Salva la query e eseguila
    Quindi per avere il conteggio considerando il 2 campi in AND...?
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    @Alex ha scritto:


    Quindi per avere il conteggio considerando il 2 campi in AND...?
    Credo di sì. Quando sfrutto le procedure guidate, mi fido e basta, ignorando spesso quello che c'è sotto.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Era una domanda la mia....
    Come pensi di ottenere il conteggio dei record che sono duplicati...?
    Meglio ragionarci non andare a fiducia...
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    1. Ho fatto un test con procedura guidata includendo 2 soli campi
    2. La visualizzazione struttura query mostra i 2 campi 3 volte (Primo, Raggruppamento, Conteggio).
    3. Il risultato ottenuto è quello aspettato.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Puoi mostrare il predicato SQL...? (Secondo me se verifichi il Numero di Records risultanti non hai lo stesso Numero Iniziale).

    Riguardando la richiesta iniziale infatti, temo che la mia soluzione sia errata... ma temo anche che questa tua soluzione non dia il risultato atteso in quanto RAGGRUPPANDO di fatto sopprime RECORDS..., mentre lui vuole il Conteggio sulla base dati INTERA.

    Allora mi spiego anche la questione della SubQuery... o del DCOUNT ...
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    SELECT First(Titoli.[Titolo]) AS TitoloCampo, First(Titoli.[n]) AS nCampo, Count(Titoli.[Titolo]) AS NumDuplicati
    FROM Titoli
    GROUP BY Titoli.[Titolo], Titoli.[n];
    Per fare il test, considera che io ho una tabella Titoli e sicuramente ho duplicati sulla coppia campi [Titolo] e [n]. Nella query è importante includere SOLO i campi interessati. Credo di aver ottenuto il risultato sperato.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Allora la query che hai fatto è appunto questa
    
    SELECT First(TT.Frutta) AS FruttaCampo, First(TT.Colore) AS ColoreCampo, Count(TT.Frutta) AS NumDuplicati
    FROM TT
    GROUP BY TT.Frutta, TT.Colore;
    Ma se verifichi BENE il risultato, non è quello atteso, come appunto immaginavo... e come peraltro erra anche la mia proposta.

    Se parti infati dalla base dati proposta
    
    D | frutta | colore | num_record
    ------------------------------------------------------
    1 | mela | rosso | 1
    2 | mela | giallo | 1
    3 | pesca | rosso | 1
    4 | pesca | giallo | 1
    5 | pera | rosso | 2
    6 | pera | rosso | 2
    Ottieni questo:
    
    FruttaCampo	ColoreCampo	NumDuplicati
    Mela	giallo	1
    Mela	rosso	1
    Pera	Rosso	2
    Pesca	giallo	1
    Pesca	rosso	1
    E se guardi manca appunto un Records... quello raggruppato per cui mostra Conteggio=2.
    Quindi credo, non sia la soluzione corretta, e probabilmente la soluzione è quella di mettere un campo Calcolato con SUBSELECT in COUNT, oppure DCOUNT.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Non avevo fatto caso agli ultimi 2 record...riguardando li interpreto come un errore di digitazione. Se invece la doppia digitazione è corretta/coerente...mi fermo e alzo le mani.
    Sarebbe interessante se eddy1973 chiarisse.
  • Re: Conteggio record con due campi uguali in una query di raggruppamento.

    Scusa Osvaldo ma se non fosse REALE come farebbero ad essere DOPPI...?
Devi accedere o registrarti per scrivere nel forum
17 risposte