Top Ten Umsetzung
am 03.11.2006 10:41:08 von m.raupe
Ich habe ein Tabelle (Auszug):
- Artikelnummer
Inhalt:
- 5
- 23
- 23
- 5
- 23
- 10
Ich würde gerne eine Abfrage so formulieren, dass ich die Artikelnummer
bekomme, die am häufigsten vorkommt (in diesem Fall: "23").
In Folge dessen hätte ich gerne die 10 am häufigsten vorkommenden (Top Ten)
Geht das?
Lg, Michi
Re: Top Ten Umsetzung
am 03.11.2006 10:55:40 von dev-null-use-reply-adress
michael ra. schrieb:
> Ich habe ein Tabelle (Auszug):
Und in welchem Datenbanksystem? Na gut, ich kann wohl
von MySQL ausgehen, gell?
> - 5
> - 23
> - 23
> - 5
> - 23
> - 10
>
> Ich würde gerne eine Abfrage so formulieren, dass ich die Artikelnummer
> bekomme, die am häufigsten vorkommt (in diesem Fall: "23").
> In Folge dessen hätte ich gerne die 10 am häufigsten vorkommenden (Top Ten)
SELECT artikelnummer, count(*) AS anzahl
FROM tabelle
GROUP BY anzahl
ORDER BY anzahl DESC
LIMIT 10
Ein reines SQL-Problem, wie Du siehst. Eigentlich OT hier.
Gruß
JPM
Re: Top Ten Umsetzung
am 03.11.2006 10:55:41 von Michael Fesser
..oO(michael ra.)
>Ich habe ein Tabelle (Auszug):
>- Artikelnummer
>Inhalt:
>- 5
>- 23
>- 23
>- 5
>- 23
>- 10
>
>Ich würde gerne eine Abfrage so formulieren, dass ich die Artikelnummer
>bekomme, die am häufigsten vorkommt (in diesem Fall: "23").
>In Folge dessen hätte ich gerne die 10 am häufigsten vorkommenden (Top Ten)
>
>Geht das?
Sischer dat. Gruppieren nach Artikelnummer, COUNT() drüber, absteigend
sortieren und per LIMIT die ersten 10 ausgeben:
SELECT artikelnummer, COUNT(artikelnummer) AS anzahl
FROM tabelle
GROUP BY artikelnummer
ORDER BY anzahl DESC
LIMIT 10
Micha
Re: Top Ten Umsetzung
am 03.11.2006 11:03:19 von Gregor Kofler
michael ra. meinte:
> Ich habe ein Tabelle (Auszug):
> - Artikelnummer
> Inhalt:
> - 5
> - 23
> - 23
> - 5
> - 23
> - 10
>
> Ich würde gerne eine Abfrage so formulieren, dass ich die Artikelnummer
> bekomme, die am häufigsten vorkommt (in diesem Fall: "23").
> In Folge dessen hätte ich gerne die 10 am häufigsten vorkommenden (Top Ten)
>
> Geht das?
Ja.
select Artikelnummer, count(Artikelnummer) as foo from ... group by
Artikelnummer order by foo desc limit ...
12.10.1. GROUP BY (Aggregate)Functions
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.ht ml
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Top Ten Umsetzung
am 03.11.2006 11:05:34 von dev-null-use-reply-adress
Jens Peter Moeller schrieb:
> SELECT artikelnummer, count(*) AS anzahl
> FROM tabelle
> GROUP BY anzahl
> ORDER BY anzahl DESC
> LIMIT 10
Achtung Fipptehler:
Es muß latürnich "GROUP BY artikelnummer" heissen.
Re: Top Ten Umsetzung
am 03.11.2006 11:38:58 von m.raupe
Danke!
"michael ra." schrieb im Newsbeitrag
news:3f40b$454b0e8c$557ddecf$7055@news.inode.at...
> Ich habe ein Tabelle (Auszug):
> - Artikelnummer
> Inhalt:
> - 5
> - 23
> - 23
> - 5
> - 23
> - 10
>
> Ich würde gerne eine Abfrage so formulieren, dass ich die Artikelnummer
> bekomme, die am häufigsten vorkommt (in diesem Fall: "23").
> In Folge dessen hätte ich gerne die 10 am häufigsten vorkommenden (Top
> Ten)
>
> Geht das?
>
> Lg, Michi
>
Re: Top Ten Umsetzung
am 05.11.2006 18:29:34 von Martin Lemke
michael ra. schrieb:
> Danke!
Dafür ein Fullquoting? Warum?