次のクエリがあり、平均評価が最も高いメンバーが最初に表示される順序でメンバーを表示しようとしています。複数のメンバーが同じ平均評価を持っている場合、評価の最大数が考慮されます。
ここでは、メンバー A は 3 人の訪問者によって評価され、平均評価値は 5 であり、メンバー B は 2 人の訪問者によって評価され、平均評価値は 5 です。
したがって、以下のクエリによると、メンバー A は平均評価が 5 で 3 人から評価されているため、最初に表示され、メンバー B は 2 番目に表示されるはずです。
しかし、メンバー B が最初に表示され、メンバー A が 2 番目に表示されるため、これは問題です。クエリで何が間違っているのか教えてください。
SELECT m.*,mc.*
FROM t_member m
LEFT JOIN tr_member_category mc ON m.memberpkid=mc.memberpkid
LEFT JOIN tr_comment c
ON m.memberpkid=c.memberpkid
AND c.approved='YES' AND c.visible='YES'
WHERE m.visible='YES' AND m.approved='YES'
AND m.gender='FEMALE' AND mc.archivecatpkid=1
GROUP BY m.memberpkid
ORDER BY avg(c.ratingvalue) DESC, COUNT(c.ratingvalue) DESC
よろしくお願いします、KRA