Top Ten Umsetzung

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?