Avatar billede hyperactive Nybegynder
29. august 2012 - 12:02 Der er 3 kommentarer og
1 løsning

Returnerer hvor mange kunder, der har placeret X ordrer

Jeg har en databasetabel, der hedder ordrer. Den ser således ud:

OrderID | CustomerID | Date | TotalAmount etc...

Jeg har nu brug for at lave en forespørgsel, som returnerer hvor mange kunder, der har placeret hhv. 1, 2, 3, 4, 5, 6 osv... ordrer.

Nogen, der kan hjælpe mig med det?
Avatar billede showsource Seniormester
29. august 2012 - 13:43 #1
Prøv
SELECT CustomerID, COUNT(*) as antal FROM tabelnavn GROUP BY CustomerID ORDER BY antal ASC

Men er ikke sikker på præcis hvad du vil.
Avatar billede hyperactive Nybegynder
29. august 2012 - 15:18 #2
Det jeg skal bruge er, en tabel over hvor mange kunder, der har har lavet X ordrer.

Der skal egentlig ikke grupperes på CustomerID, men på antal ordrer. Altså et resultat, der f.eks. kunne se sådan her ud:

AntalOrdrer | AntalKunder
1          |250
2          |149
3          |101
4          |59
5          |18
29. august 2012 - 21:44 #3
Denne forespørgsel

SELECT COUNT(*) AntalOrdrer FROM mytable GROUP BY CustomerID

giver en liste med antal ordrer per CustomerID.  Hvis der for eksempel er tre customers med en ordre hver, 2 customers med 2 ordrer hver, og 1 customer med 3 ordrer vil forespørgslen give

AntalOrdrer
1
1
1
2
2
3

For så at få det ønskede output, altså

AntalOrdrer  AntalKunder
1                    3
2                    2
3                    1

så brug denne forespørgsel:

SELECT AntalOrdrer, COUNT(*) AntalKunder FROM (SELECT COUNT(*) AntalOrdrer FROM mytable GROUP BY CustomerID) a GROUP BY AntalOrdrer ORDER BY AntalOrdrer
Avatar billede hyperactive Nybegynder
31. august 2012 - 13:24 #4
Takker Christian
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