사용자의 각 이벤트에 대한 등급을 저장하는 MYSQL 테이블이 event_rating이라는 이벤트 테이블에 1-10 있습니다. 내가 뭘 찾으려고 노력하고있어이 같은 득표 수와 등급에 따라 가장 정확한 평가입니다 : MYSQL 등급 알고리즘
SELECT
c.userid,
c.user_name,
COUNT(d.event_rating) AS votesCount,
AVG(d.event_rating) AS votesAvg,
SUM(d.event_rating) AS tsum,
COUNT(d.event_rating)*AVG(d.event_rating)/COUNT(d.event_rating) as totalRating
FROM events d JOIN users c ON d.userid = c.userid WHERE (d.userid = '2') GROUP BY d.userid ORDER BY totalRating DESC
나는 사용자의 두 더미 등급, 10 등급 하나와 5 다른를 추가했다.
userid user_name votesCount votesAvg tsum totalRating
2 Rahul Khanna 2 7.5000 15 7.50000000
가 정확하고, 나는 바로 그것을 계산하고 있습니다 :
결과는 다음과 같습니다?
--- 편집 ---
게시 일부 더 많은 결과 사용COUNT(d.event_rating)*AVG(d.event_rating)/COUNT(d.event_rating) as totalRating
userid user_name votesCount votesAvg tsum totalRating
2 Rahul Khanna 2 7.5000 15 7.50000000
1 Rita Agnihotri 9 4.8889 44 4.88888889
3 Daniel Springs 4 3.5000 14 3.50000000
4 Roger Myers 6 3.5000 21 3.50000000
5 Chun Tanakat 3 3.0000 9 3.00000000
을 사용
COUNT(d.event_rating)*AVG(d.event_rating) as totalRating
userid user_name votesCount votesAvg tsum totalRating
1 Rita Agnihotri 9 4.8889 44 44.0000
4 Roger Myers 6 3.5000 21 21.0000
2 Rahul Khanna 2 7.5000 15 15.0000
3 Daniel Springs 4 3.5000 14 14.0000
5 Chun Tanakat 3 3.0000 9 9.0000
--- 더 ---
은 내가 아래를 사용하는 대신해야 하는가? 내가 무엇이 필요
COUNT(d.event_rating)*AVG(d.event_rating)/10 as totalRating
도 고려 votesCount를 넣고 등급은 1 ~ 10 사이 여야한다는 것을, 총 등급을 계산하는 정확한 방법입니다.
--- 자세한 내용
---나는 하나의 테이블 사용자 다른 이벤트를 가지고, 사용자는 새로운 이벤트를 추가하고 해당 이벤트 평가 할 수 있습니다. 이벤트 표에는 eventID, userid, event_rating 열이 있습니다. 따라서 각 이벤트는 사용자가 작성한 이벤트에 대한 등급을 보유 할 수 있습니다. 내가 원하는 것은 모든 이벤트 등급을 계산하여 해당 사용자의 최대 (전체) 등급을 얻는 것입니다. 사용자가 몇 번이나 이벤트를 작성했는지에 상관없이 총 시청률이 1-10 명을 초과하지 않고 10 명을 초과하지 않도록하고 싶습니다. 그게 가능하니? 해결책이나 아이디어가 없다면? 읽기 :
내 정보가 더 많은 정보와 결과로 업데이트되었습니다. – Zubair1
수학적으로 문제는 여전히 동일합니다. 'COUNT (d.event_rating) * AVG (d.event_rating)/COUNT (d.event_rating) as totalRating'은'AVR (d.event_rating) as totalRating'과 동일합니다. * b)/a'는'b'입니다. –
내 솔루션이 무엇이 될지 모르겠습니다. 더 명확하게하기 위해, 내가 성취하려고 노력하는 것에 관해서는 더 자세한 내용으로 나의 질문을 업데이트했다. – Zubair1