webForumDet fria alternativet

Group by eller distinct

Databaser & SQL

8 svar · 236 visningar · startad av Macce

Medlem sedan apr. 2001425 inlägg
Frågan#1

Jag vill kunna radera alla utom mina sista tio besökare från db (access)

Jag vill gruppera på sessionid eftersom varje sida har en egen räknare...

Delete From tbl_linkstats WHERE sessionid NOT IN (SELECT top 10 sessionid FROM tbl_linkstats Group by sessionid Order by visitdate desc)

Order by visitdate fungerar inte med group...

Vad gör jag för fel ?

Medlem sedan dec. 200012 464 inlägg
#2
Delete From tbl_linkstats t WHERE sessionid NOT IN (SELECT top 10 sessionid FROM tbl_linkstats where sessionid = t.sessionid Order by visitdate desc)
Medlem sedan apr. 2001425 inlägg
#3

:)

Tack !

bytte ut "t" mot tbl_linkstats så fungerade din kod !!!

Medlem sedan apr. 2001425 inlägg
#4

det vill sig inte riktigt...
Upptäckte att det var fel :

Delete From tbl_linkstats WHERE sessionid NOT IN (SELECT top 10 sessionid FROM tbl_linkstats where sessionid = tbl_linkstats.sessionid Order by visitdate desc)

den innehåller ingen group by sessionid som krävs utan jag får totalt bara 10 poster hela tiden, jag vill ha betydligt fler men bara 10 st unika sessionid...

Medlem sedan apr. 2001425 inlägg
#5

Denna verkar fungera bättre...

Delete From tbl_linkstats WHERE sessionid NOT IN (select sessionid from tbl_linkstats where sessionid in (select top 5 sessionid from tbl_linkstats group by sessionid) order by visitdate desc)

hmm, problemet är bara att den tar bort de senaste istället för de tidigaste "visitdate"

Ska väl dessutom räcka med EN subquery :(

Medlem sedan mars 2003772 inlägg
#6

order by visitdate ASC

Medlem sedan apr. 2001425 inlägg
#7

nope, ingen skillnad

Medlem sedan mars 2003772 inlägg
#8

hmm vet ej :[

Medlem sedan apr. 2001425 inlägg
#9

Syntaxfel :)

262 ms totalt · 3 externa anrop · v20260731065814-full.265f3fdd
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)