Avatar billede jespera Nybegynder
09. juni 2004 - 13:59 Der er 16 kommentarer og
1 løsning

Lav en top5 ud fra antallet af samme ip i en tabel

Hej alle

Jeg har en tabel som hedder userlog. Denne har blandt andet IP (userip) tilknyttet til sig.

Jeg skal på en eller anden måde ha fundet hvilken IP'er som har besøgt os flest gange og såldes lave en top5 hvordan gøres det.

Jeg programmerer i jScript


På forhånd tak
Avatar billede kelo Nybegynder
09. juni 2004 - 14:07 #1
select top 5 (distinct Userip) from tabel
Avatar billede kelo Nybegynder
09. juni 2004 - 14:09 #2
select top 5 count(distinct userip) as antal, userip
from tabel
group by userip

tror jeg virker.
Avatar billede jespera Nybegynder
09. juni 2004 - 14:33 #3
hmm det brokker sig lidt.....

//Error

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'count(distinct userip)'.

//Code

<%                       
                        rsTop = Conn.Execute("select top 5 count(distinct userip) as antal, userip from userlog group by userip");                                               
                        do {
                            Response.Write(rsTop("userip"));
                            Response.Write("<br>");
                            rsTop.Movenext
                          }
                          while (rsTop.EOF);
                    %>
Avatar billede nozio Nybegynder
09. juni 2004 - 16:18 #4
Prøv med:

select distinct top 5 userip , count(userip) as antal, userip from userlog group by userip
Avatar billede eagleeye Praktikant
09. juni 2004 - 23:32 #5
Prøv at rette denne linje:

rsTop = Conn.Execute("select top 5 count(distinct userip) as antal, userip from userlog group by userip");

Til:

rsTop = Conn.Execute("select top 5 userip, count(userip) as antal from userlog group by userip");
Avatar billede netro Nybegynder
09. juni 2004 - 23:39 #6
Eller:

rsTop = Conn.Execute("Select Top 5 userip, Count(*) As Antal From userlog Group By userip Order By Antal Desc");
Avatar billede eagleeye Praktikant
09. juni 2004 - 23:43 #7
Access kan ikke order by et alias navn, så man må skrive det igen, altså count(userip) :)
Avatar billede netro Nybegynder
10. juni 2004 - 00:00 #8
Nej, det mente jeg egentlig heller ikke. Jeg plukkede eksemplet fra MySQL, hvor man i øvrigt også kan benytte Count(Distinct Felt) ;o)
Avatar billede jespera Nybegynder
10. juni 2004 - 09:06 #9
Der kommer kun en IP adresse selvom der rimelig mange, kode ser nu sådan

                      <%                       
                        rsTop = Conn.Execute("select top 5 userip, count(userip) as antal from userlog group by userip");                                       
                        do {                         
                            Response.Write(rsTop("userip"));
                            Response.Write("<br>");
                            rsTop.Movenext
                          }
                          while (rsTop.EOF);
                    %>
Avatar billede netro Nybegynder
10. juni 2004 - 13:22 #10
while (!rsTop.EOF);
Avatar billede jespera Nybegynder
11. juni 2004 - 09:25 #11
Hej, nu virker det næsten men den udskriver kun 4 stk ?
Avatar billede jespera Nybegynder
11. juni 2004 - 09:46 #12
Har fundet fejlen, der var en masse blanke i min log fil......
Avatar billede jespera Nybegynder
11. juni 2004 - 09:47 #13
Netro lægger du et svar.....TAK FOR HJÆLPEN :-)
Avatar billede jespera Nybegynder
14. juni 2004 - 10:08 #14
Har lige opdaget at den ikke sorter efter hvem der har logget ind flest gange. Hvordan får man den til det
Avatar billede jespera Nybegynder
14. juni 2004 - 21:35 #15
Nogle ideer ????
Avatar billede bruhnsweb Nybegynder
18. februar 2005 - 15:44 #16
order by antal
Avatar billede netro Nybegynder
18. februar 2005 - 15:48 #17
Ja, eller måske nærmere: order by count(userip) desc
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging