[英]MySQL - selecting usernames based on work submitted (two-variable)
试图弄清楚如何根据每个用户的“工作量”来生成和排序用户名列表。
考虑一张桌子,股份。 除其他事项外,每个份额都包含一个用户名和一个难度(一个数字,两个平方)。 我想以COUNT(用户名)乘以难度来为用户分配功劳(并排序列表)。
这是我当前的查询,不考虑难度。 我无法进行进一步的分组/加入而不会导致错误。
SELECT username, COUNT(username) AS occurences
FROM shares
GROUP BY username
ORDER BY occurences DESC
用户可能会遇到多个困难而提交共享。 目的是将“共享次数难度”数字最高的用户排在第一位,最后一位最低。
如果有可能显示每位用户最受欢迎的难度,则获得加分。 谢谢!
听起来您的文件为用户提供了多个记录,并且每个记录都有不同的难度级别。 您想要汇总难度,然后除以该用户的记录数,以计算平均难度。 如果此假设正确,则可以使用:
SELECT username, COUNT(username) AS occurences, SUM(difficulty) AS difficulty
, SUM(difficulty)/COUNT(username) As share_times_difficulty
FROM shares
GROUP BY username
ORDER BY share_times_difficulty DESC
有关详细信息,请参见此SqlFiddle 。
如果这些假设是错误的,并且您正在寻找不同的东西,请进行说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.