Top Ten Umsetzung

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
m.raupe [ Fr, 03 November 2006 10:41 ] [ ID #1523601 ]

Re: Top Ten Umsetzung

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
dev-null-use-reply-ad [ Fr, 03 November 2006 10:55 ] [ ID #1523602 ]

Re: Top Ten Umsetzung

..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
Michael Fesser [ Fr, 03 November 2006 10:55 ] [ ID #1523603 ]

Re: Top Ten Umsetzung

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
Gregor Kofler [ Fr, 03 November 2006 11:03 ] [ ID #1523604 ]

Re: Top Ten Umsetzung

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.
dev-null-use-reply-ad [ Fr, 03 November 2006 11:05 ] [ ID #1523605 ]

Re: Top Ten Umsetzung

Danke!

"michael ra." <m.raupe [at] gmx.at> schrieb im Newsbeitrag
news:3f40b$454b0e8c$557ddecf$7055 [at] 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
>
m.raupe [ Fr, 03 November 2006 11:38 ] [ ID #1523606 ]

Re: Top Ten Umsetzung

michael ra. schrieb:

> Danke!

Dafür ein Fullquoting? Warum?
Martin Lemke [ So, 05 November 2006 18:29 ] [ ID #1525043 ]
PHP » de.comp.lang.php.datenbanken » Top Ten Umsetzung

Vorheriges Thema: Re: MySql - auto_increment
Nächstes Thema: Abfrageproblem