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

时间:2013-09-18 19:11:47

标签: mysql count

试图弄清楚我如何根据每个人的“工作量”生成和订购用户名列表。

考虑一张表,分享。每个共享包含用户名和难度(数字,2的平方)等。我想将信用额(和订单列表)分配为COUNT(用户名)乘以难度。

这是我当前的查询,它没有考虑难度。我没有能够在不造成错误的情况下进行进一步的分组/加入。

SELECT username, COUNT(username) AS occurences
FROM shares
GROUP BY username
ORDER BY occurences DESC

用户可以在多个困难时提交分享。目标是将具有最高“共享时难度”数的用户排在第一位且最后一位。

如果可以显示每位用户最常用的难度,则可获得积分。谢谢!

1 个答案:

答案 0 :(得分:1)

听起来你的文件有多个用户记录,每个记录都有不同的难度。您希望聚合难度,然后除以该用户的记录数,以计算平均难度。如果这个假设是正确的,你可以使用:

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

有关详细信息,请参阅this SqlFiddle

如果假设是错误的,并且您正在寻找不同的东西,请澄清。