webForumDet fria alternativet

hämta top 10 från varje klient

5 svar · 360 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1
SELECT c.Client, s.Searchword, count(*)
	FROM Stats s
	INNER JOIN Clients c ON c.ClientID = s.ClientID
		GROUP BY s.Searchword, 
			c.Client
			ORDER BY c.Client

Denna select gruperar ihop sökorden/client och visar hur många gånger man sökt på det ordet.
Går det (så klart det går men hur!) att begränsa varje klients till 10?
Nu kan t.ex. klient "A" ha 40 sökord med x antal träffar på varje, jag vill bara visa 10 med högst antal träffar!

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT c.Client, s.Searchword, count(*) 
 FROM Stats s
 INNER JOIN Clients c ON c.ClientID = s.ClientID
 GROUP BY s.Searchword, 
 c.Client
 having count(*) in (select top 10 count(*) as occ
  from stats st
 where st.clientid = c.clientid
    group by searchword
   order by occ desc)
 ORDER BY c.Client
doggelitoMedlem sedan juni 20003 076 inlägg
#3

Väldigt nära! :)
Dock, vissa klienter visar ändå fler än 10 ord.
Det verkar som om, om antalet är lika så visas alla.
Ex, en klient blev så här:

klient1	ord1	234
klient1	ord2	232
klient1	ord3	211
klient1	ord4	200
klient1	ord5	165
klient1	ord6	154
klient1	ord7	134
klient1	ord8	123
klient1	ord9	90
klient1	ord10	80
klient1	ord11	80
klient1	ord12	80

rad 10, 11, 12 har alltså samma antal.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jo, det är klart det blir så. Hur vill du välja mellan ord10, ord11 och ord12?

doggelitoMedlem sedan juni 20003 076 inlägg
#5

Hur vill du välja mellan ord10, ord11 och ord12?

Det spelar egentligen ingen roll, den kan sortera på orden i alfabetisk ordning. :)

LarsGMedlem sedan dec. 200012 464 inlägg
#6
SELECT c.Client, s.Searchword, count(*) 
 FROM Stats s
 INNER JOIN Clients c ON c.ClientID = s.ClientID
 GROUP BY s.Searchword, 
 c.Client
 where searchWord in (select searchword
  from (select top 10 searchword,count(*) as occ
   from stats
  where stats.clientid = s.clientid 
   group by searchword
  order by occ desc, searchword)dt)
  ORDER BY c.Client
131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)