Query Count Distinct in Access

martedì 17 febbraio 2015 - 14.20
Tag Elenco Tags  Access (.mdb)

86Marco Profilo | Expert

Buonasera ragazzi,
ho un piccolo db in access e mi ritrovo a dover creare una query un po' complessa e non riesco a venirne a capo.

Ho una tabella di questo tipo:
username | DataDiAccesso |
username1 | 10/02/2015 |
username1 | 10/02/2015 |
username2 | 12/02/2015 |
username3 | 12/02/2015 |
username1 | 12/02/2015 |
username3 | 12/02/2015 |

Vorrei farmi restituire da una query un risultato raggruppato per giorno, che mi restituisca il conteggio degli accessi distinti per username. Quindi,sostanzialmente, contarmi quanti username hanno effettuato l'accesso all'applicazione.

DataDiAccesso | Conteggio
10/02/2015 | 1
12/02/2015 | 3

DOvrei fare una select raggruppata per datadiaccess ma ho problemi con la distinct sull'username.
Sapete aiutarmi?
GRazie

sboss83 Profilo | Newbie

Ciao Marco.
Scusa se rispobdo di fretta, ma hai provato a usare òa clausula GROUP BY ?
https://msdn.microsoft.com/it-it/library/ms177673.aspx

Fammi sapere!

Ciao
Stefano

86Marco Profilo | Expert

Ciao Stefano,
si certo utilizzo la clausola Group by.

forse sono stato poco felice nell'esposizione:
Ho questa tabella:

381x255 31Kb


Faccio una semplicissima query di selezione utilizzando il Group By:

SELECT Accessi.DataAccesso, Count(Accessi.Username) AS ConteggioDiUsername
FROM Accessi
GROUP BY Accessi.DataAccesso;

ricevendo:

380x142 19Kb


Tuttavia, non è quello che voglio ricevere. Ovviamente.
Perché io vorrei che gli username identici vengano conteggiati una sola volta. Nello specifico il giorno 01/01/2015 io ho si 4 accessi, ma in realtà gli username ad essere entrati sono solo 2 (username1 ed username2). E così via...

Dovrei fare un distinct sull'username ma ho problemi con il costruire lo statement sql corretto.
Spero di essere stato più chiaro :).

Grazie

sboss83 Profilo | Newbie

Prova così :

SELECT Accessi.DataAccesso, Count(DISTINCT Accessi.Username) AS ConteggioDiUsername
FROM Accessi
GROUP BY Accessi.DataAccesso;

Ciao
Stefano

86Marco Profilo | Expert

Ciao Stefano.
grazie intanto nuovamente per la risposta.

Il DBMS in questione è Ms Access ed il COUNT DISTINCT non è supportato.

Lavorando con SQL Server, il problema non si sarebbe posto poiché la tua select è sintatticamente corretta. Il mio problema è proprio su Access che, ripeto, non ha la compatibilità con COUNT DISTINCT.

:(

sboss83 Profilo | Newbie

Chiedo scusa, ma non avevo capito.
dimmi se così funziona :

SELECT tab.dataaccesso, Count(tab.username)
FROM (select distinct dataaccesso,username from accessi) as tab
Group By tab.dataaccesso;




Ciao !!
Stefano

86Marco Profilo | Expert

Perfetto!

Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5