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

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