Avatar billede montago Praktikant
07. juli 2004 - 18:26 Der er 6 kommentarer og
1 løsning

Tricky SQL 2

denne her SQL:

select * from cars where id not in (select CarRatings.Car_ID from CarRatings where CarRatings.Raters_ID = " & MyID("ID") & ") and Car_Owner <> " & MyID("ID"))
    Set Top10 = conn.execute("Select TOP 10 Car_ID,Count(*) as votes,avg(Car_Rate) as avgRate, Profiles.Username,Profiles.ID, Cars.Car_slot1,Cars.Car_title from ((carRatings inner join Cars on Cars.id=CarRatings.Car_ID ) inner join Profiles on Profiles.id=Cars.Car_Owner) Group by Car_ID, Profiles.Username,Cars.Car_slot1,Cars.Car_Title,Profiles.ID order by avg(Car_Rate) desc

vil jeg gerne have til, kun at select records, hvor Count(*) er størst...

SQL'en laver en Top10 liste over biler (se evt. http://www.eksperten.dk/spm/515489)

problemet er at den skal sorteres lidt anderledes, eller også skal records med mindre end count(*) = 5 ikke vises

en top10 liste giver nemlig ingen mening hvis EEN stemme givende 100% ryder førstepladsen... der skal jo helst være en lidt mere solid opbakning af stemmerne

*hvis i ikke fatter hvor jeg vil hen må i lige spørge
Avatar billede montago Praktikant
07. juli 2004 - 18:28 #1
arr fuk...
SQL'en er selvfølgelig:

Select TOP 10 Car_ID,Count(*) as votes,avg(Car_Rate) as avgRate, Profiles.Username,Profiles.ID, Cars.Car_slot1,Cars.Car_title from ((carRatings inner join Cars on Cars.id=CarRatings.Car_ID ) inner join Profiles on Profiles.id=Cars.Car_Owner) Group by Car_ID, Profiles.Username,Cars.Car_slot1,Cars.Car_Title,Profiles.ID order by avg(Car_Rate) desc
Avatar billede montago Praktikant
07. juli 2004 - 18:28 #2
og giver:

Car_ID votes avgRate Username ID Car_slot1 Car_title
70 5 93 Djiant 69 Profiles/Djiant/Sky_front.JPG Hot Gold
73 3 86,6666666666667 Montago 2 Profiles/Montago/Subaru_Front.jpg Gold-flame
59 6 85,8333333333333 Guitar John 412 Profiles/Guitar John/Guitar John 1.JPG JZ S2000 Stinger
82 1 85 Djiant 69 Profiles/Djiant/350z_front.JPG Rainbolic
76 3 85 Djiant 69 Profiles/Djiant/RX7_front.JPG Little Tiger
44 11 83,6363636363636 SpeedBomb84 5 Profiles/SpeedBomb84/SpeedBomb84-RX7-front.JPG SB Neuspeed CrimsonRazor RX-7
71 3 83,3333333333333 Montago 2 Profiles/Montago/Civic_Front.jpg Toxic
75 4 82,5 Montago 2 Profiles/Montago/Eclipse_Front.jpg Eclipse Xmod Eddition
16 10 82,5 LilM 147 Profiles/LilM/de nye endnu mere forbedrede MX-5 forfra LILLE.JPG LilMs MX-5
52 5 82 McBogan 9 Profiles/McBogan/McBogan - sentra1.JPG Sanchez
Avatar billede montago Praktikant
07. juli 2004 - 18:29 #3
her ses det at Car_ID kun har 1 "vote"
Avatar billede montago Praktikant
07. juli 2004 - 18:29 #4
altså car_id = 82
Avatar billede avlund Nybegynder
07. juli 2004 - 18:39 #5
Har du prøvet:

Select TOP 10 Car_ID,Count(*) as votes,avg(Car_Rate) as avgRate, Profiles.Username,Profiles.ID, Cars.Car_slot1,Cars.Car_title from ((carRatings inner join Cars on Cars.id=CarRatings.Car_ID ) inner join Profiles on Profiles.id=Cars.Car_Owner) Group by Car_ID, Profiles.Username,Cars.Car_slot1,Cars.Car_Title,Profiles.ID having votes > 5 order by avg(Car_Rate) desc

?
Avatar billede montago Praktikant
07. juli 2004 - 19:22 #6
Having... den havde jeg ikke tænkt på...

skriv et svar... så du kan få lidt point
Avatar billede avlund Nybegynder
07. juli 2004 - 20:34 #7
Glad for at du kunne bruge det til noget - og tak for points.
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