02. februar 2006 - 12:57Der er
6 kommentarer og 1 løsning
tælle med et kriterie
Jeg har en brugerstatistik, hvor jeg forsøger at lave et view der viser hvilket domæne brugerne kommer fra, hvor mange der bliver medlemmer, og hvor mange brugere fra hvert domæne der kommer flere gange.
Jeg har lavet denne her:
---------------------------
SELECT TOP 100 PERCENT SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''))) AS [Domain], COUNT(SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', '')))) AS [Count], COUNT(BID) AS AntalMedlemmer, SUM(AntalBesog) AS SamletAntalBesog FROM dbo.StatistikBrugere GROUP BY SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''))) ORDER BY COUNT(*) DESC
---------------
men antal medlemmer tæller ikke rigtigt, da jeg ikke har noget kriterie på endnu. Kriteriet skal være: where BID>1 men jeg aner ikke hvor det skal indsættes, for at få det til at virke.
Derudover skal jeg have en kolonne mere med, hvor jeg tæller AntalBesog, hvor AntalBesog > 5 (for at se hvor kvalitetsbrugerne kommer fra)
Jeg er lidt sikker på om jeg forstår rigtig hvad du spørger efter. Ønsker du kun at vise de linier der har AntalBesog > 5, eller ønsker du kun at vise noget i den summerede kolonne SamletAntalBesog hvis antal > 5. Hvis det er det sidste du ønsker, kan du burge en CASE: CASE WHEN SUM(AntalBesog)> 5 THEN SUM(AntalBesog) ELSE NULL END
Eksempel på bruge af CASE (som vist ovenfor) i din forespørgsel, hvis SUM(AntalBesog) > 5 kun er en begrænsning i forhold til at vise summen i kolonnen SamletAntalBesog:
SELECT TOP 100 PERCENT SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''))) AS [Domain], COUNT(SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', '')))) AS [Count], COUNT(BID) AS AntalMedlemmer, CASE WHEN SUM(AntalBesog)> 5 THEN SUM(AntalBesog) ELSE NULL END AS SamletAntalBesog FROM dbo.StatistikBrugere GROUP BY SUBSTRING(REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''), 0, CHARINDEX('/', REPLACE(SUBSTRING(RefUrl, 8, LEN(RefUrl)), 'WWW.', ''))) ORDER BY COUNT(*) DESC Having COUNT(BID) > 1
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.