Avatar billede friiiiis Novice
05. oktober 2013 - 16:49 Der er 2 kommentarer og
2 løsninger

group by problemer

Hej!

Jeg har en tabel (AdvancedTable) med 3 kolonner i:

UIN
Dato
Measurement

Jeg vil gerne beregne middelværdi for "measurement" group by time men kun for UIN=2

Jeg har prøvet

SELECT HOUR(DATO) as kl,AVG(Measurement) as middel FROM (SELECT * from AdvancedTable WHERE UIN =2) tab group by kl

men det virker ikke

Andre ideer...??
Avatar billede Syska Mester
05. oktober 2013 - 17:01 #1
Du kan ikke group by på et select felt.

Jeg vil tro du skal bruge HOUR(DATO) også i din group by.

Det er jo lidt ... hønen eller ægget. Den kan ikke group by før du har selected alt, og der har du også et AVG med. Så ville den skulle køre den query flere gange før du fik det endelig resultat.

Udover det ... hvorfor så en subquery til din "where clause"? Hurtigere bare at tage den med i din oprindelig query, omend SQL optimzer alligevel sikkert er klog nok til at gøre det for dig.

mvh
Avatar billede bauerdata Nybegynder
06. oktober 2013 - 06:05 #2
SELECT HOUR(DATO) as kl, AVG(Measurement) as middel
FROM AdvancedTable
WHERE UIN = 2
group by HOUR(DATO)
Avatar billede friiiiis Novice
06. oktober 2013 - 18:17 #3
>> Buzzz Smid et svar - dine kommentarer gav mig stof til eftertnke og jeg fik det faktisk løst før jeg så Bauerdata kommentarer - men derfor er er nu point alligevel
Avatar billede Syska Mester
07. oktober 2013 - 08:49 #4
Svar
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

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