Avatar billede squaq Nybegynder
15. maj 2003 - 09:06 Der er 4 kommentarer og
1 løsning

SQL - Sum og Group By

Jeg har en tabel:
Season:
Hold1 | Hold2 | TD1 | TD2 |
A | B | 0 | 0 |
B | C | 2 | 0 |
D | E | 2 | 0 |
D | B | 1 | 0 |
F | C | 0 | 1 |
C | D | 3 | 0 |

TDi = mål scoret af HOLDi

Jeg er ved at lave en "statistik side" hvor jeg gerne vil have en top10 for hold der har scoret flest mål. Men SQL driller. Hvordan kan man gøre det?

Mit eget bud:
"SELECT seasonA.hold1, seasonB.hold2, sum(seasonA.td1)+sum(seasonB.td2) AS tds "
"FROM season AS seasonA, season AS seasonB "
"WHERE seasonA.hold1=seasonB.hold2 "
"GROUP BY seasonA.hold1, seasonB.hold2 "
"ORDER BY sum(seasonA.td1)+sum(seasonB.td2) DESC"

Det virker bare ikke!
Avatar billede pierrehusted Nybegynder
15. maj 2003 - 11:03 #1
Hvis du kun skal have antal scorede mål kan du f.eks. gøre det sådan her :



select hold, sum(td) from
(
SELECT A.hold1 as hold, A.td1 as td
FROM season AS A
UNION
SELECT B.hold2, B.td2
FROM season AS B
) as samlet
Group by hold
Avatar billede squaq Nybegynder
15. maj 2003 - 11:23 #2
Ok, det var en konstruktion jeg ikke har set før med SELECT inde i en SELECT-sætning, men det virker.

Nu skal jeg bare finde ud af hvorfor :)
Mange tak
Avatar billede pierrehusted Nybegynder
15. maj 2003 - 11:41 #3
Serveren udfører først det i parentesen, og opfatter derfor

(
SELECT A.hold1 as hold, A.td1 as td
FROM season AS A
UNION
SELECT B.hold2, B.td2
FROM season AS B
) as samlet

som en tabel ved navn samlet
Avatar billede pierrehusted Nybegynder
15. maj 2003 - 11:42 #4
Hvis det er store datamængder, så kan du sikkert vinde noget hastighed ved at lægge

(
SELECT A.hold1 as hold, A.td1 as td
FROM season AS A
UNION
SELECT B.hold2, B.td2
FROM season AS B
) as samlet

ind i et view.
Avatar billede squaq Nybegynder
15. maj 2003 - 11:49 #5
Pt. er det ikke den største database, men man ved jo aldrig. Men den tid den sorg.
Igen mange tak
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
Computerworld tilbyder specialiserede kurser i database-management

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