Avatar billede krismort Nybegynder
03. november 2008 - 17:01 Der er 4 kommentarer

Udvælg fra trabel hvor entries skal være unikke

Jeg har en liste med records i en tabel som ser således ud

ConnectionTable
UserName    Stamp

Hver gang en bruger forbinder til vores server oprettes en account med et tidsstempel i MySql databasen.

Jeg har et problem, jeg vil gerne tælle hvor mange unikke brugerer som har prøvet at connecte i en måned som aldrig før har prøvet at connecte. Til det bruger jeg flg. SQL sætning, som desværre ikke giver det rigtige resultat.

SELECT count(DISTINCT UserName) FROM ConnectionTable WHERE Stamp LIKE '2008-11-%' AND NOT EXISTS ( SELECT DISTINCT UserName FROM ConnectionTable WHERE Stamp NOT LIKE '2008-11-%' );

Er der en som kan hjælpe mig hvad jeg gør galt ?
Avatar billede coderdk Praktikant
03. november 2008 - 18:13 #1
Prøv

SELECT COUNT(UserName) FROM ConnectionTable WHERE Stamp LIKE '2008-11-%' GROUP BY UserName
Avatar billede arne_v Ekspert
03. november 2008 - 22:01 #2
SELECT count(DISTINCT UserName) FROM ConnectionTable ct1 WHERE Stamp LIKE '2008-11-%' AND NOT EXISTS ( SELECT * FROM ConnectionTable ct2 WHERE ct1.UserName=ct2.UserName AND Stamp NOT LIKE '2008-11-%' );
Avatar billede arne_v Ekspert
03. november 2008 - 22:02 #3
eller

SELECT count(DISTINCT UserName) FROM ConnectionTable WHERE Stamp LIKE '2008-11-%' AND UserName NOT IN ( SELECT UserName FROM ConnectionTable WHERE Stamp NOT LIKE '2008-11-%' );
Avatar billede arne_v Ekspert
18. januar 2009 - 04:18 #4
kommet videre ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester