Avatar billede thomas_regin Nybegynder
24. marts 2001 - 00:07 Der er 8 kommentarer og
2 løsninger

SQL-hajer.. Her er en udfordring, tror jeg!..

I min counter-tabel opbevarer jeg IP-adresserne og referers fra samtlige hits på mit site. Jeg lister alle disse ved hjælp af SELECT DISTINCT, men får desværre ikke det resultat jeg gerne ville ha\'. Nemlig, at hvis en IP-adresse optræder mere end én gang, ja så skal den osse kun listes én gang. Findes der en SQL-statement, der f.eks hedder Select Unique eller noget lignende, som jeg kunne bruge i dette tilfælde?..

100 points til det brugbare svar!..

På forhånd tak og god weekend,

Thomas Regin.
Avatar billede dudal Nybegynder
24. marts 2001 - 00:42 #1
Der er deværre ikke nogen let løsning til dette.


Det su kan gøre er at skrive denne sql:

SELECT DICTINCT(IP) From Tabel

Hvis du f.eks skriver

SELECT DICTINCT(IP), Id From Tabel

vil du få alle records, da disticnct virker på alle feltnavne. Og da id er forskellig for hver record, vil hver record blive vist.

/Nute/Dudal :-)
Avatar billede proaccess Nybegynder
24. marts 2001 - 07:53 #2
Enten
SELECT DISTINCT IP From Tabel;

Eller
SELECT IP, Count(Hits) From Tabel GROUP BY IP;

HDH
ProAccess
Avatar billede thomas_regin Nybegynder
24. marts 2001 - 23:27 #3
Hmmmmm....

Dudal,

Din metode er jo faktisk magen til den jeg i forvejen bruger, og som ikke virker helt efter hensigten. Problemet er jo, at jeg skal trække refereren med ud, og hvis jeg kun spørger på Distinct IP, så kan jeg ikke få referer med!..

Proaccess,
SELECT DISTINCT virker ikke, som beskrevet ovenfor. Og det gør dit andet løsningsforslag heller ikke, desværre. :O(

Er der andre, der har lyst til at byde på dette spørgsmål!?..

Jeg takker mange gange for de forløbige svar!.. Der må da være noget der virker!!.. :-)

Med venlig hilsen,

Thomas Regin.
Avatar billede proaccess Nybegynder
25. marts 2001 - 09:53 #4
Hej Thomas,

hvis du er ude efter noget i retning af:

IP  REF
xx  1234
    1235
    1236
yy  123
    124
zz  6523

Så kan du prøve denne:

SELECT IP AS SortIP, Referer AS SortReferer, IP, Referer
FROM [Counter] AS Co
WHERE Co.Referer=(SELECT Min(Referer) FROM Counter WHERE IP=Co.IP)
UNION SELECT IP, Referer, Null, Referer
FROM Counter AS Co
WHERE Co.Referer<>(SELECT Min(Referer) FROM Counter WHERE IP=Co.IP)

du er dog nødt til at holde fast i de originale data for at kunne sortere rigtigt...

ProAccess

Avatar billede torbenkoch Nybegynder
25. marts 2001 - 11:41 #5
Prøv lige at fortæl os, hvad det er du vil have ud. Giv et par eksempler med nogle faktiske data, så kan vi sikkert hurtigt løse det problem!
Avatar billede thomas_regin Nybegynder
25. marts 2001 - 13:22 #6
Hejsa igen!..

Jeg fik løst mit problem!..

Fejlen var naturligvis indlysende:

I min SELECT DISTINCT statement hev jeg IP og Referer OG Date/Time med ud... Og eftersom Date/time var ny hos hver besøgende, så viste den samtlige hits.. Nogle gange stirrer man sig fuldstændigt blind på nogle ting..

Jeg beklager, men jeg synes alligevel at i skal ha\' points for jeres svar, så hvis Dudal lige laver et \"svar\", så deler jeg pointene mellem Procaccess og Dudal...

Med venlig hilsen,

Thomas Regin.
Avatar billede dudal Nybegynder
25. marts 2001 - 14:19 #7
Okie... Danke sehr.:-)

/Jesper
Avatar billede thomas_regin Nybegynder
25. marts 2001 - 14:27 #8
Sådanne.. Er vi alle glade nu?...

Jeg er ihvertfald!.. :-)

Takker mange gange!

Thomas Regin.
Avatar billede dudal Nybegynder
25. marts 2001 - 14:31 #9
Dvsl

/Jesper
Avatar billede proaccess Nybegynder
25. marts 2001 - 17:06 #10
Det vigtigste er at du fik løst dit problem...

ProAccess
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
Computerworld tilbyder specialiserede kurser i database-management

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