MySQL GROUP BY gebruiken met range

Status
Niet open voor verdere reacties.

nielskevin

Gebruiker
Lid geworden
23 sep 2007
Berichten
13
Hallo iedereen,

Even mijn tabel uitleggen

IDDATETIME
101-01-2015 08:03:00
201-01-2015 08:08:00
201-01-2015 08:08:00
201-01-2015 08:11:00
201-01-2015 12:00:00
301-01-2015 22:50:00

Indien ik op deze tabel volgende query loslaat:

[SQL]SELECT ID,COUNT(*)
FROM table
GROUP BY ID, DATETIME[/SQL]

Kom ik volgend resultaat uit:

IDCOUNT(*)
11
23
31

Nu wil ik een ander resultaat krijgen.
In de regels met hetzelfde ID zou hij moeten kijken of er datumtijd dicht bij elkaar liggen.
Als variabel neem ik bijvoorbeeld 5 minuten, dus wil zeggen dat indien er datumtijd binnen de 5 minuten ligt van de andere dat dit telt als 1

Eigenlijk zou ik op bovenstaand voorbeeld volgende tabel willen verkrijgen:

IDCOUNT(*)
11
22
31

Want bij ID 2 heb ik datumtijd "01-01-2015 08:08:00" en "01-01-2015 08:11:00" die in dezelfde range van 5 minuten zit.

Kan iemand mij hierbij helpen? ik geraak er echt niet aan uit
 
Bump

Sorry voor het bumpen maar ik heb zelf de oplossing nog niet gevonden :(
 
Dan zal je dus een vergelijking moeten maken tussen de huidige rij en de rij ervoor. Dit betekent dus ook dat je met variabelen moet gaan werken. Ik wil er wel bij melden dat het misschien niet het handigst is om met MySQL. Persoonlijk gebruik ik hier liever talen voor als R!

Hier een voorbeeld van wat je zal moeten maken (als je met MySQL verder wilt werken):

http://stackoverflow.com/questions/10079190/mysql-datetime-comparison-with-previous-row

Success!

P.S. I heb dit resultaat gevonden door te Googlen 'mysql compare row to previous row'. Denk ik gooi het er even bij aangezien het best moeilijk kan zijn om te verwoorden tegenover Google wat je nou eigenlijk wilt bereiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan