webForumDet fria alternativet

Knepig GROUP BY (?)

5 svar · 286 visningar · startad av Gein

GeinMedlem sedan sep. 20005 700 inlägg
#1

Tabellen ser ut som följer

timestamp  user  AP

Där timestamp är i unix time.
Ett utdrag ur tabellen kan se ut:

1110459600 	000000000053 	000B851759A0
1110459600 	00000000009D 	000B8517FFF0
1110459600 	0000000000A1 	000B8517FFF0

Data innehåller alla användare som är anslutna till en AP vid en viss tidpunkt.
Timestamp löper med 5 minuters mellanrum. Nu skulle jag vilja ha ut antalet anslutna användare till en given AP med ett tidsintervall på t.ex. 24h.

SELECT timestamp, count( user ) , AP
FROM wlanlog
WHERE AP = "000B851759A0"
GROUP BY timestamp, AP

Ovan ger antalet anslutna användare till AP:n för varje fem minuters intervall men hur får jag ut samma information men för ett godtyckligt intervall?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select t,ap,count(*) 
 from 
 (SELECT timestamp/<antalsekunderiDittInterval> as t,AP
FROM wlanlog
WHERE AP = '000B851759A0') dt
GROUP BY t, AP
GeinMedlem sedan sep. 20005 700 inlägg
#3
SELECT t, ap, count( * )
FROM (

SELECT timestamp /3600 AS t, AP
FROM wlanlog
WHERE AP = '000B851759A0'
)dt
GROUP BY t, AP

ger samma resultat som

SELECT t, ap, count( * )
FROM (

SELECT timestamp /300 AS t, AP
FROM wlanlog
WHERE AP = '000B851759A0'
)dt
GROUP BY t, AP

redigering/ Det beror väl isåfall på att det är samma användare anslutna? Inga ytterliggare användare mellan tidsintervallen.
Behöver man ta hänsyn till detta annars? Den ska ju inte räkna samma användare flera gånger inom tidsintervallet.

GeinMedlem sedan sep. 20005 700 inlägg
#4

Om jag väljer tidsintervallet en månad (2592000 sekunder) så bör jag få ~ 7 rader eftersom det är så långt som datat sträcker sig. Men med sökningen får jag ut 455 rader...
Hur kommer det sig?

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Är det Mysql? I så fall är problemet att den inte gör heltalsdivision

SELECT t, ap, count( * )
FROM (SELECT ceil(timestamp /300) AS t, AP
FROM wlanlog
WHERE AP = '000B851759A0')dt
GROUP BY t, AP
GeinMedlem sedan sep. 20005 700 inlägg
#6

Kanonbra! Nu verkar det fungera!
Tack!

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)