WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Sortera efter störst förekomst? (https://www.wn.se/forum/showthread.php?t=13270)

Micke_ 2006-03-31 15:10

Jag har en sökfunktion där jag sparar sökorden i en databastabell.
Jag vill lista de fem mest sökta orden.

Queryn ser nu ut såhär:
Kod:

SELECT * FROM search_objects GROUP BY search_string ASC LIMIT 5
Då grupperas de sökord som förekommer flera gånger, men de sorteras inte efter störst förekomst. Jag vill alltså att de ord som förekommer flest gånger ska hamna först.

hoppas nån har någon idé

zoran 2006-03-31 15:15

Citat:

Originally posted by Micke_@Mar 31 2006, 15:10
Jag har en sökfunktion där jag sparar sökorden i en databastabell.
Jag vill lista de fem mest sökta orden.

Queryn ser nu ut såhär:
Kod:

SELECT * FROM search_objects GROUP BY search_string ASC LIMIT 5
Då grupperas de sökord som förekommer flera gånger, men de sorteras inte efter störst förekomst. Jag vill alltså att de ord som förekommer flest gånger ska hamna först.

hoppas nån har någon idé

Kod:

select *,count(search_string) as scount from search_objects group by search_string order by scount asc limit 5;
Har inte en ANING om detta fungerar, men det kan iallafall ge dig lite ider.

zoran 2006-03-31 15:16

Juste, tror nog du behöver byta asc mot desc i min query.

Henrik 2006-03-31 15:22

Du får slänga in "ORDER BY COUNT(search_id) DESC" eller liknande så blir det nog som du vill. Inte nödvändigtvis en jättebra query om du har väldigt många sökningar dock, bättre att ha statistik i en annan tabell i så fall.

Micke_ 2006-03-31 16:49

Jag löste det med

Citat:

SELECT search_string AS name, COUNT(search_string) AS top5 FROM search_objects GROUP BY search_string ORDER BY top5 DESC LIMIT 5
tack för hjälpen!


Alla tider är GMT +2. Klockan är nu 00:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson