繁体   English   中英

MySQL-根据提交的工作选择用户名(两个变量)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM