Avatar billede koppelgaard Praktikant
25. maj 2007 - 09:20 Der er 14 kommentarer og
1 løsning

Gennemsnit 1 gang i timen

Har følgende tabel.
Jeg vil gerne have en gennemsnit 1 gang i timen af temperaturen. Kan det klares med sql eller skal man hen op kode og oprette et recordset?

PlotKey    Time    Depth    Temperature
20905    17-sep-03    5    11.68
20905    17-sep-03    5    12.56
20905    17-sep-03    5    14.18
20905    17-sep-03    5    13.55
20905    17-sep-03    5    13.61
20905    17-sep-03    5    13.62
20905    17-sep-03    5    14.15
20905    17-sep-03    5    13.75
20905    17-sep-03    5    14.33
20905    17-sep-03    5    14.23
20905    17-sep-03    5    14.67
20905    17-sep-03    5    13.96
20905    17-sep-03    5    15.05
20905    17-sep-03    5    14.69
20905    17-sep-03    5    14.31
20905    17-sep-03    5    13.94
Avatar billede koppelgaard Praktikant
25. maj 2007 - 09:23 #1
Ups. Noget af tabellen kom ikke med. Her er det hele (naturligvis meget længere)

PlotKey    Time    Replicate    Depth    Temperature
20905    17-09-2003 09:40:00    1    5    11.68
20905    17-09-2003 09:40:00    2    5    12.56
20905    17-09-2003 09:50:00    1    5    14.18
20905    17-09-2003 09:50:00    2    5    13.55
20905    17-09-2003 10:00:00    1    5    13.61
20905    17-09-2003 10:00:00    2    5    13.62
20905    17-09-2003 10:10:00    1    5    14.15
20905    17-09-2003 10:10:00    2    5    13.75
20905    17-09-2003 10:20:00    1    5    14.33
20905    17-09-2003 10:20:00    2    5    14.23
20905    17-09-2003 10:30:00    1    5    14.67
20905    17-09-2003 10:30:00    2    5    13.96
20905    17-09-2003 10:40:00    1    5    15.05
20905    17-09-2003 10:40:00    2    5    14.69
20905    17-09-2003 10:50:00    1    5    14.31
20905    17-09-2003 10:50:00    2    5    13.94
Avatar billede fennec Nybegynder
25. maj 2007 - 09:30 #2
Noget ala:
select avg(Temperature) from dinTabel group by year(Time), month(Time), day(Time), hour(Time)

Men jeg er ikke sikker på hvad PlotKey, Replicate og Depth er til...
Avatar billede koppelgaard Praktikant
25. maj 2007 - 10:06 #3
tak jeg prøver
Avatar billede koppelgaard Praktikant
25. maj 2007 - 11:00 #4
Jeg har rodet lidt med det. Der er 5 mio rows - det tager lidt tid.
Jeg vil gerne have alle de PlotKey, Depth med, som henviser til hvor temperaturen er målt henne.
(det er jordtemperaturer)

Så vidt jeg kan regne ud skulle antallet af rækker være 11 gange færre, hvis der er 11 målinger pr time, som midles sammen.
Men så snart jeg ønsker at se flere kolonner  kommer, der flere rækker. Hvordan kommer jeg videre? Hertil er jeg naaet..

SELECT Avg(SoilTemperatur.Temperature) AS GennemsnitOfTemperature
FROM SoilTemperatur
GROUP BY Year(Time), Month(Time), Day(Time), Hour(Time)
Avatar billede koppelgaard Praktikant
25. maj 2007 - 11:01 #5
Og for resten skulle data lægges i en ny tabel
Avatar billede fennec Nybegynder
25. maj 2007 - 12:43 #6
SELECT PlotKey, Depth, Avg(SoilTemperatur.Temperature) AS GennemsnitOfTemperature
FROM SoilTemperatur
GROUP BY PlotKey, Depth, Year(Time), Month(Time), Day(Time), Hour(Time)
Avatar billede koppelgaard Praktikant
25. maj 2007 - 13:18 #7
Det saa bedre ud. Og hvordan smider jeg det i en ny tabel ?
Avatar billede koppelgaard Praktikant
02. juni 2007 - 13:50 #8
Vil du have point?
Mit sidste spørgsmål kan jeg vist godt klare selv :=)
Avatar billede fennec Nybegynder
04. juni 2007 - 08:35 #9
Du må undskylde at jeg ikke har set din sidste kommentar. Har du klaret det, eller skal jeg finde på noget??

.o) <-- One Eyed Jack
Avatar billede koppelgaard Praktikant
04. juni 2007 - 13:12 #10
Nja ikke helt, jeg troede jeg havde klaret problemet men:
problem 1:
Jeg har :
SELECT PlotKey, Depth, Avg(SoilTemperatur.Temperature) AS GennemsnitOfTemperature
FROM SoilTemperatur
GROUP BY PlotKey, Depth, Year(Time), Month(Time), Day(Time), Hour(Time)
men jeg mangler tiden( time,minut,)

problem 2
og så skulle jeg have sat output ind i en tabel. Troede jeg kunne:

INSERT INTO  SoilTemperatureNy (PlotKey, Depth, Temperature)
VALUES (Forespørgsel1);

hvor forespørgsel1 er den ovenstående

Jeg giver gerne 30 nye point.

Michael
Avatar billede fennec Nybegynder
04. juni 2007 - 13:26 #11
1: Mangler tiden?? Hvilken tid? Tænker du på dette:
SELECT PlotKey, Depth, Avg(SoilTemperatur.Temperature) AS GennemsnitOfTemperature, Year(Time) as aa, Month(Time) as m, Day(Time) as d, Hour(Time) as t
FROM SoilTemperatur
GROUP BY PlotKey, Depth, Year(Time), Month(Time), Day(Time), Hour(Time)

2: Er ikke sikker på at Access understøtter denne kode:
INSERT INTO  SoilTemperatureNy
SELECT PlotKey, Depth, Avg(SoilTemperatur.Temperature) AS Temperature
FROM SoilTemperatur
GROUP BY PlotKey, Depth, Year(Time), Month(Time), Day(Time), Hour(Time)
Avatar billede koppelgaard Praktikant
05. juni 2007 - 08:06 #12
Prøver lidt senere
Avatar billede koppelgaard Praktikant
07. juni 2007 - 22:41 #13
Nu har jeg endelig fået testet - ja indrømmet jeg er ikke hurtig.
Det virkede.
Tusinde tak for hjælpen!
Jeg vil gerne give dig 70 ekstra, som tak for hjælpen, men hvordan gør jeg det????
Jeg er ny.

Michael
Avatar billede fennec Nybegynder
08. juni 2007 - 08:13 #14
Det kunne du have gjort inden du accepterede mit svar. Under "Funktioner" oppe til venstre er der en "afsæt flere point" punkt, hvor man kan hæve point tallet.

Nu er den eneste mulighed at lave et nyt ? med point i.
Avatar billede fennec Nybegynder
08. juni 2007 - 08:16 #15
Hvis du er ny, så tag et kik på den uofficielle faq:
http://expfaq.dk/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester