Kom ihåg mig?
Home Menu

Menu


mySQL query: Hämta högsta värdet per dygn.

 
Ämnesverktyg Visningsalternativ
Oläst 2007-07-16, 15:08 #1
bivald bivald är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 207
bivald bivald är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 207
Hej,
Jag sitter och skriver ett statistikprogram som samlar data från olika källor vid en regelbunden tid (ex. var femte minut). Det samlar värden från en chattserver jag driver såsom antal användare inloggade, antal vakter inloggade men även ram och cpu-förbrukning. Insamlingen i sig är inga problem men jag sitter fast på hur jag lättast ska hämta datan från tabellerna. Jag har två tabeller: irc och sys (irc sparar data såsom antal inloggade medan sys sparar om ramminne osv).

Förenklat så vill jag kunna hämta högsta värdet av en kolumn per dygn. Att hämta för ett specefikt datum är enkelt, t.ex:
Kod:
select id,date, users from irc where year(date) = 2007 and month(date) = 07 and dayofmonth(date) = 14 order by users desc limit 0,1
Vilket ger:
Kod:
+------+---------------------+-------+
| id   | date           | users |
+------+---------------------+-------+
| 1087 | 2007-07-14 00:20:01 |  369 |
+------+---------------------+-------+
id är auto-increment, date är datetime, users int. Unix timestamp finns också (time) för den som är mer bekväm med det.

Men för att få statistik för t.ex. en vecka, en månad eller ett år vill jag göra en fråga som ger min högst antalet användare nedbrutet per dag, alltså första raden visar högsta antal användare dag 1, andra radern visar högsta antal användare dag 2, osv. Kort sagt:
Kod:
+-----------------+---------- +
| id  |date        | users   |
+-----------------+-----------+
| 1087 | 2007-07-14 | 369    |
| 1387 | 2007-07-15 | 378    |
| 1467 | 2007-07-16 | 323    |
+----------------+------------+
Några förslag på en lösning? Antar att ett alternativ är att köra stored proc som loopar igenom datumen. Tanken är att sedan kunna köra en query som tar ut när vi har högst antal users per dag och sedan slår ihop datan med information såsom vad den aktuella ramförbrukningen var då.

Då det är mycket som ska gås igenom kommer förfrågan antagligen bli rätt tung, detta i sig är nog inget större problem då dem egentligen bara behöver köras en gång per dygn (sedan kan man antingen spara det i cache eller helt enkelt skriva till en fil)

All hjälp skulle uppskattas,
Mvh/ Niklas
bivald är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017