17. november 2002 - 16:09Der er
10 kommentarer og 1 løsning
Distinct Sum
Hej - jeg har en tabel som fungerer som en relation mellem to andre. Nu vil jeg så tælle en af kollonnerne sammen, men problemet er at jeg kun skal bruge een række ud af de nogen gange 100 rækker som repræsenterer den samme pointindgang. hmmm...
Jeg har prøvet noget lignende dette:
SELECT DISTINCT p.statsID, sp.Klub, sp.spillerfornavn, sp.spillerefternavn, sp.spillerid, Sum(p.points) as summen FROM points2002 p, spillere2002 sp Where sp.spillerID = p.spillerID Group By sp.spillerID, p.statsID, p.kamp ORDER BY summen DESC LIMIT 0,10
Det er noget rod der kommer ud her, men burde Distinct ikke sørge for at en række med samme statsID ikke kommer med mere end een gang?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du skal vist bare undlade at gruppere på (og medtage) statsID...
SELECT DISTINCT sp.Klub, sp.spillerfornavn, sp.spillerefternavn, sp.spillerid, Sum(p.points) as summen FROM points2002 p, spillere2002 sp Where sp.spillerID = p.spillerID Group By sp.spillerID, p.kamp ORDER BY summen DESC LIMIT 0,10
SELECT DISTINCT sp.Klub, sp.spillerfornavn, sp.spillerefternavn, sp.spillerid, Sum(p.points) AS summen FROM points2002 AS p, spillere2002 AS sp WHERE sp.spillerID = p.spillerID GROUP BY sp.Klub, sp.spillerfornavn, sp.spillerefternavn, sp.spillerid ORDER BY summen DESC LIMIT 0,10
Jeg vil tro at dette vil gøre som du vil ha' den til
Points2002 består af en masse rækker hvor ID er det eneste unikke. Hver række repræsenterer en forbindelse mellem en statistik-tabel og et drømmehold. Nu er det så min intention at trække een række ud for hver statistik/kamp (der findes een statistik for hver kamp spilleren har deltaget i, men op til 300 hvis alle har spilleren på deres drømmehold) og derefter summere dem på spilleren(spillerID). Til sidst skal jeg så kun bruge de ti spillere som har tjent flest points.
SELECT p.statsID, sp.spillerid, sp.Klub, sp.spillerfornavn, sp.spillerefternavn, Sum(p.points) AS summen FROM points2002 AS p, spillere2002 AS sp WHERE sp.spillerID = p.spillerID GROUP BY p.statsID, sp.spillerid ORDER BY summen DESC LIMIT 0,10
Denne her, med og uden DISTINCT, giver mig en summering på alle instanser i points2002 - altså det rigtige bortset fra at alle medtages. Hvordan får jeg den nu til kun at tage hver statsID med een gang?
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.