---
title: "Knepig GROUP BY (?)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/137889-knepig-group-by"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gein"
published: "2005-11-18T15:52:48.000Z"
updated: "2005-11-18T17:05:41.000Z"
replies: 5
views: 286
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/137889-knepig-group-by"
---

# Knepig GROUP BY (?)

## #1 — Gein, 2005-11-18T15:52Z

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?

Permalänk: https://www.webforum.nu/p/137889

## #2 — LarsG, 2005-11-18T16:00Z

```
select t,ap,count(*) 
 from 
 (SELECT timestamp/<antalsekunderiDittInterval> as t,AP
FROM wlanlog
WHERE AP = '000B851759A0') dt
GROUP BY t, AP
```

Permalänk: https://www.webforum.nu/p/1712405

## #3 — Gein, 2005-11-18T16:11Z

```
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.

Permalänk: https://www.webforum.nu/p/1712410

## #4 — Gein, 2005-11-18T16:20Z

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?

Permalänk: https://www.webforum.nu/p/1712418

## #5 — LarsG, 2005-11-18T16:34Z

Ä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
```

Permalänk: https://www.webforum.nu/p/1712426

## #6 — Gein, 2005-11-18T17:05Z

Kanonbra! Nu verkar det fungera!
Tack!

Permalänk: https://www.webforum.nu/p/1712430

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/137889-knepig-group-by
