AndyMedlem sedan sep. 2001138 inlägg
Har en tabell med massor av ord besökare har sökt efter på min site (varje sökning sparas i databasen).
Nu vill jag visa de tio senaste, unika, sökningarna, och skrev därför ihop en SQL-sats som ser ut så här:
SELECT DISTINCT TOP 10 SearchWords FROM tableSearches ORDER BY ID DESC
Men då får jag ett meddelande som säger att ID-kolumnen, som är en räknare, måste finnas med i selecten. Men om jag tar med den, så här:
SELECT DISTINCT TOP 10 SearchWords, ID FROM tableSearches ORDER BY ID DESC
Så returnerar den ju dubletter.
Hur gör jag?
SPiNMedlem sedan mars 20005 832 inlägg
Jag kan vara ute och cykla, men:
SELECT TOP 10 DISTINCT(SearchWords) FROM tableSearches ORDER BY ID DESC
AndyMedlem sedan sep. 2001138 inlägg
Verkar inte fungera, tyvärr... TOP 10 måste stå efter DISTINCT
aasahMedlem sedan mars 20033 451 inlägg
Det är klart att du inte kan ordna svaret efter en kolumn som du inte plockar ut. Hur skulle det gå till?
Följande kan kanske funka:
CREATE VIEW tmp(word, antal) as
SELECT SearchWords, count(ID) FROM tableSearches
GROUP BY SearchWords;
SELECT words FROM tmp
WHERE antal in
(SELECT TOP 10 antal FROM tmp);
DROP VIEW tmp;