webForumDet fria alternativet

SELECT DISTINCT -och COUNT?

Databaser & SQL

12 svar · 648 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Jag håller på med en "besöksräknare" för bilder, och har lite svårigheter med hur jag ska få ut/visa unika besökare.

Det jag vill göra, är alltså att visa hur många ip-adresser COUNT() som har besökt resp. bild.
Har testat med flera olika "kombinationer", men det slutar alltid med att endast 1 resultat visas. (Det är flera bilder som har besökts av 2 olika ip:n, men de visas inte.)

Ber om ursäkt för ev. oklarheter i min "förklaring" ovan.

Medlem sedan juni 200032 967 inlägg
#2

Kan se lite olika ut beroende på dbms, men...

SELECT Bild, COUNT(DISTINCT ip-adress) AS Antal
FROM tabell
GROUP BY Bild
Medlem sedan juli 20041 271 inlägg
#3

Var det enkelt. :r
Verkar dock inte "gruppera" helt rätt efter antal.

GROUP BY visits.image_id DESC LIMIT 10
11
12
2
2
1
3
1

:q

Medlem sedan juni 200032 967 inlägg
#4

Vad menar du?
Det där borde inte ens gå att köra.

...ORDER BY Antal DESC?

Medlem sedan juli 20041 271 inlägg
#5

Jo, det gick att köra så.
Jag kan inte gruppera efter "antal", (Can't group on 'antal').

Kan det bero på att jag hämtar lite tabeller med en INNER JOIN också?
(Kanske skulle ha sagt det från början.)

Medlem sedan juni 200032 967 inlägg
#6

Varför ska du gruppera på antal? Det finns ingen anledning till det.
Du måste tänka fel.

Medlem sedan juni 200032 967 inlägg
#7

Var alltid så tydlig som du kan med din fråga. Det hjälper både dig och oss andra.

Medlem sedan juli 20041 271 inlägg
#8

@nders skrev:

Varför ska du gruppera på antal? Det finns ingen anledning till det.
Du måste tänka fel.

Nej, jag tänker inte fel.
Kanske har förklarat fel?

Jag vill såklart sortera resultaten efter den bild som har fått flest besök (x antal olika ip).

Medlem sedan juni 200032 967 inlägg
#9

Ja, sortera på antal - ORDER BY. Inte gruppera på antal.
Du ska gruppera på bildens id, och sortera på antal.

Om du tänker, skriver eller förklarar fel vet jag inte. :)

Medlem sedan juli 20041 271 inlägg
#10

Om jag kör ORDER BY antal, visas bara ett resultat.

Ge mig gärna en spark i baken, mot rätt riktning.
Har suttit med detta ett tag nu. Suck... :x

Medlem sedan juni 200032 967 inlägg
#11

Något sånt här borde fungera:

SELECT Bild, COUNT(DISTINCT ip-adress) AS Antal
FROM tabell
GROUP BY Bild
ORDER BY Antal DESC

Om det inte gör det får du visa hela din SQL-fråga och beskriva resultatet bättre.

Medlem sedan juli 20041 271 inlägg
#12

Äntligen! Nu fungerar det precis som jag vill.
Tusen tack för din hjälp och för ditt tålamod.

Medlem sedan juni 200032 967 inlägg
#13

Lugners. Det är ju fredag! :bire

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)