18. september 2010 - 00:27
Der er
9 kommentarer
Beregninger i sql database opslag
Jeg har en MYSQL tabel med en masse data i min. 200.000 rækker. Tabellen består bla. af: ID, point, dato 123, 45, 11-09-2010 124, 34, 11-09-2010 123, 48, 12-09-2010 124, 35, 12-09-2010 123, 48, 13-09-2010 124, 35, 13-09-2010 125, 10, 13-09-2010 123, 49, 14-09-2010 124, 35, 14-09-2010 125, 10, 14-09-2010 123, 49, 15-09-2010 124, 37, 15-09-2010 125, 10, 15-09-2010 Jeg skal lave en query der viser en oversigt over ID hvor point de sidste 3 dage (udfra 15-09-2010) har ændret sig -3/+3 således: Output ID, dags dato point, +/-(3d) 123, 49, 1 124, 37, 2 Jeg har leget med nogle løsninger med fetch_array, men kan ikke helt gennemskue, hvordan det skal løses. // Retrieve all the data from the "game_12" table $result = mysql_query("SELECT * FROM game_12 ORDER BY id DESC") or die(mysql_error()); // store the record of the "game_12" table into $row $row = mysql_fetch_array( $result ); Skal man lave flere fetch_array og trække dem fra hinanden eller hvad? Håber nogle kan hælpe. På forhånd tak ! Hilsen Henrik Albrechtsen
Annonceindlæg fra Computerworld
Vejen til succes er.. Kedelig!
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
11. juli 2025
18. september 2010 - 00:48
#1
Først og fremmest, ås bør du ændre din tabel til at datoformatet er i standard formatet, YYYY-MM-DD f.eks. 2010-09-15 Hvordan kan du se at point er ændret ?
18. september 2010 - 11:00
#3
Til: showsource Det jeg søger er en funktion der kan udregne og vise alle ID der har ændret sig +/- X i de sidste Y dage. Det må være noget med list ID fra seneste dato og udregn ændring ved at trække point fra ædste række dog max Y dage gammel. Til TrulleWeb: Der er omkring 5.500 ID´er, dvs. der kommer 5.500 nye rækker hver dag. Jeg vil tro at der kommer max 2.000.000 rækker i tabellen.
18. september 2010 - 18:58
#7
En gang pr. id ? Du mener vel en gang pr. dato ? Og umiddelbart, ved jeg ikke lige hvordan, måske arne_v kikker forbi ? Kan nok finde ud af noget med flere queries, men ikke i en.
27. september 2010 - 03:33
#8
Du skal nok ud i noget: SELECT t1.id, t1.point, t1.point-t2.point FROM tabelnavn t1,tabelnavn t2 WHERE t1.id=t2.id AND t1.dato=X AND t2.dato=Y AND t1.point-t2.point <> 0