Count och Max?

Databaser & SQL

4 svar · 331 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Trådstart#1

Sparar poster i en databas så här:
Datum(datetime) - userID(int)

Vill nu hämta ut den dag som har mest unika poster ifrån databasen.
Ex: 2006-01-01 hade jag 100 unika inloggningar.

Hur skriver man i sql strängen för att fixa detta? Har MySQL v 4.03

Medlem sedan juni 20034 013 inlägg
#2

SELECT COUNT(DISTINCT(userID)) AS besok, SUBSTRING(datum, 1, 10) AS d FROM din_tabell GROUP BY d ORDER BY besok DESC

Medlem sedan dec. 20011 860 inlägg
#3

Får man ut den dag som hade flest unika inloggningar med den koden? Måste inte Max med i strängen?

Medlem sedan juni 20034 013 inlägg
#4

Asa skrev:

Får man ut den dag som hade flest unika inloggningar med den koden?

Ja, "ORDER BY besok DESC" betyder att den sorterar datumen efter antalet "besök" (unika inloggningar) i fallande ordning, så det datum med flest inloggningar kommer först. Är det bara det datumet du är intresserad av kan du ju lägga till LIMIT 1 sist så får du inga fler datum.

Asa skrev:

Måste inte Max med i strängen?

Nej, det måste han inte.

Medlem sedan dec. 20011 860 inlägg
#5

Haha, tänkte inte på det ;)

331 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
202 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)