Kom ihåg mig?
Home Menu

Menu


Räkna poster som topplista i MySQL och ASP

Ämnesverktyg Visningsalternativ
Oläst 2004-09-17, 10:58 #1
Infocores avatar
Infocore Infocore är inte uppkopplad
Medlem
 
Reg.datum: Jun 2003
Inlägg: 121
Infocore Infocore är inte uppkopplad
Medlem
Infocores avatar
 
Reg.datum: Jun 2003
Inlägg: 121
Har stött på ett problem som egentligen borde vara ganska lätt men har nog trasslat till det ganska mkt för mig själv i mina tankar att det står helt still.

Låt säg att jag har en tabell som ser ut såhär:

pID ENTRY
1 1
2 0
1 1
1 0
1 1
2 1
2 0
2 0

Jag vill nu veta vilket pID som har flest ENTRY, allt i samma SQL sats. Visst kan man köra en COUNT(entry) fast det går ju bara på enskilda poster. Jag vill alltså ha det pID ligger etta på topplistan. Här har pID 1 tre st entry 1 och pID 2 ett stycke entry 1, om ni förstår?
Funktionen tabellen, har bara klistrat in en liten del av den här, är att räkna sidträffar. värde 1 står för att sidan är ingångssida och 0 för ja inte ingång. Jag vill nu kunna presentera vilken sida som fungerat som ingångssida flest antal gånger.

Tacksam för hjälp.

(Fick inte till tabbarna i tabellen men ni lär nog fatta att det sista värdet i posten tillhör entry ; )
Infocore är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-17, 11:13 #2
mypay mypay är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 528
mypay mypay är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 528
tror du får göra det med flera sql-frågor...

först gå igenom varje olika pID,, köra en count på det för Entry och se om det är högre än föregående count...

jag skulle göra det så här..

sql = "select distinct pID from TABLE order by pID asc"
set rs = conn.execute(sql)

antal = 0
do while not rs.eof
sql = "select count(*) as antal from TABLE where pID = " & rs("pID")
set rs2 = conn.execute(sql)
if rs2("antal") > antal then Rank1_pID = rs("pID")
rs.movenext
loop

response.write "Den som har fungerat som ingångssida flest gånger är " & Rank1_pID & vbCrLf
mypay är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-17, 11:41 #3
knafve knafve är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2003
Inlägg: 42
knafve knafve är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2003
Inlägg: 42
Kan du inte bara köra count/group såhär?

select pid, count(*) as antalentries from table
group by pid
order by antalentries desc

Då får du ju en sammanställning på hur många entries varje pid har, sorterat nedåtgående på antal entries. Är inte 100 på att "order by antalentries desc" fungerar i MySQL, men såifall får man nöja sig med de två första raderna och sedan sortera manuellt i en array. Är ju dumt att köra flera statements när man kan göra det med ett.
knafve är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-17, 11:43 #4
pikkenix pikkenix är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 198
pikkenix pikkenix är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 198
Detta beror lite på vilken version du har av mySQL. Men här är ett förslag du kan testa fungerar de inte så gör du bara om hela frågan till en nestad sökning.

SELECT pID, COUNT(entry) as antalhits FROM table GROUP BY pID ORDER BY antalhits DESC
pikkenix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-09-17, 13:06 #5
Infocores avatar
Infocore Infocore är inte uppkopplad
Medlem
 
Reg.datum: Jun 2003
Inlägg: 121
Infocore Infocore är inte uppkopplad
Medlem
Infocores avatar
 
Reg.datum: Jun 2003
Inlägg: 121
Tack så j***a mycket för era svar! Har verkligen klurat på detta jättelänge och äntligen har jag fått lösningen!

Ha de gött gubbar!
Infocore är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017