/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL forespørgsel
Fra : Anders H Nielsen


Dato : 14-02-06 20:02

Hej gruppe,

Jeg er ikke superstærk i min SQL når vi når udover de mest basale
SELECT-sætninger, så jeg har et spørgsmål jeg håber I kan hjælpe med.

Jeg har nogle dataset der ser nogenlunde sådan her ud:
ID | tid | navn | side | ...

ID er nøgle, men tid/navn/whatever kan *snildt* være det samme flere
steder (ikke noget med nøgler i andre tabeller)

Jeg ønsker at lave nogle statistiske dataudtræk hvor jeg er interesseret
i at vide hvor mange gange hvert navn optræder i tabellen og lave en
"top 10" af det.
Den eneste mulighed jeg med min manglende viden kan se er noget med at
først lave en "select distinct navn ..." og derefter lave en røvfuld
"select count (*)" for hvert eneste navn - og det er vist det der kaldes
slam-kode :)

Kan I hjælpe med en enkelt sql-sætning der kan lave noget "top
10"-agtigt på en tabel der ka eksekveres mod en MySQL base?

Tak
Anders

 
 
Mads Lie Jensen (14-02-2006)
Kommentar
Fra : Mads Lie Jensen


Dato : 14-02-06 21:26

On Tue, 14 Feb 2006 20:01:44 +0100, Anders H Nielsen <not@available.dk>
wrote:

>Jeg har nogle dataset der ser nogenlunde sådan her ud:
>ID | tid | navn | side | ...
>
>ID er nøgle, men tid/navn/whatever kan *snildt* være det samme flere
>steder (ikke noget med nøgler i andre tabeller)
>
>Jeg ønsker at lave nogle statistiske dataudtræk hvor jeg er interesseret
>i at vide hvor mange gange hvert navn optræder i tabellen og lave en
>"top 10" af det.
>Den eneste mulighed jeg med min manglende viden kan se er noget med at
>først lave en "select distinct navn ..." og derefter lave en røvfuld
>"select count (*)" for hvert eneste navn - og det er vist det der kaldes
>slam-kode :)
>
>Kan I hjælpe med en enkelt sql-sætning der kan lave noget "top
>10"-agtigt på en tabel der ka eksekveres mod en MySQL base?

SELECT COUNT(navn) AS antal, navn FROM tabel GROUP BY navn ORDER BY
antal ASC LIMIT 10;

....tror jeg.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
-snart med hund: http://vedskovens.dk/d/hv/2005_olivia/051030/051030_d2.htm

Gartneriet - snart i ny indpakning: http://ny.gartneriet.dk

Anders H Nielsen (14-02-2006)
Kommentar
Fra : Anders H Nielsen


Dato : 14-02-06 21:57

Mads Lie Jensen wrote:
> SELECT COUNT(navn) AS antal, navn FROM tabel GROUP BY navn ORDER BY
> antal ASC LIMIT 10;
>
> ...tror jeg.

:)

- og jeg tror du tror rigtigt. Ser ihvertfald ud til at jeg får et
array af objekter tilbage jeg ka arbejde med igennen de
servicefunktioner der kører på databasen...

Jeg takker!

Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408173
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste