【发布时间】:2019-05-03 02:30:36
【问题描述】:
我一直在寻找一个简单的SQL查询来解决一个非常简单的问题。我一直在运行一个非常简单的社交分享活动,我们有一个包含 2 个字段的 mysql 数据库:电子邮件和 AffiliateID
SELECT
users.Email, users.ID,
users.AffiliateID,
Count(users.AffiliateID) as afid
from users
order by afid desc
当我运行此查询时,它只返回 1 条记录,其中计数正确,只有最高计数。
我想要的是按数据库中拥有最多“affiliateID”记录的人排序的所有用户列表。
这将告诉我们将分享比赛中的一等奖授予谁。
这里有一些类似的问题,但这些解决方案似乎不适用于这种情况。
我想要的是系统中所有用户的降序输出,由他们的父母(赞助商)排名,这样我们就可以构建类似于“排行榜”的东西
Group By Count and Total Count
MySQL: Count total in Group by Query
感谢您的帮助!
这里是更新的查询
select u.Email, AffiliateID, count(u.AffiliateID) as afid
from users u
where SiteID=17
group by u.Email
order by afid desc
这会生成上面的图像...
但这不是我需要的。我需要的是让 509218 用户首先出现,然后计算他被推荐的用户数量,然后是下一个用户 5dd.. 然后排在第三位和第四位的是 471 和 472 并打成平手。
【问题讨论】:
-
还在苦苦挣扎?请参阅meta.stackoverflow.com/questions/333952/…,并记得包含一个主键(尽管我怀疑这个建议会被完全忽略)