jamiet757 Posted January 9, 2010 Share Posted January 9, 2010 I have a site that users can post links to files to download. They can rate these files on a 1-5 scale. I had someone make a Top Rated section for the site, to show the user with the highest rating for their links. However, it just adds a total of points, i.e. if the user has 3 links rated 5/5, their points are 15, if a user has 10 links rated 5/5, their points are 50. It displays the rating based on the number of points, but I would like it to divide the number of points by the number of links. Here is the section of code that deals with the rating calculation, I just don't know enough about syntax to figure out how to divide by the other variable. <?xml version="1.0" encoding="utf-8"?> <sqlmap> <select id="getTopPoster" resultClass="array"> <![CDATA[ select username, count(linkid) as linkposted from link group by username order by linkposted desc limit 5 ]]> </select> <select id="getTopRated" resultClass="array"> <![CDATA[ select username, sum(rate) as point from link where rate<>-1 group by username order by point desc limit 5 ]]> </select> </sqlmap> I know it is xml code, but I didn't know where else to put it, the rest of the site is built using Prado. Quote Link to comment Share on other sites More sharing options...
Psycho Posted January 9, 2010 Share Posted January 9, 2010 Try replacing the second query with this: select username, sum(rate)/COUNT(username) as point from link where rate<>-1 group by username order by point desc limit 5 Quote Link to comment Share on other sites More sharing options...
jamiet757 Posted January 9, 2010 Author Share Posted January 9, 2010 Try replacing the second query with this: select username, sum(rate)/COUNT(username) as point from link where rate<>-1 group by username order by point desc limit 5 That worked perfectly, thanks a lot! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.