[英]Calculate total affiliated count per user
我一直在寻找一个简单的SQL查询来解决一个非常简单的问题。 我一直在进行一个非常简单的社交共享活动,我们有一个包含2个字段的mysql数据库:email和AffiliateID
SELECT
users.Email, users.ID,
users.AffiliateID,
Count(users.AffiliateID) as afid
from users
order by afid desc
当我运行此查询时,它仅返回1条记录,其中正确的计数仅是最高计数。
我想要的是一个按数据库中“ affiliateID”记录最多的人排序的所有用户的列表。
这将告诉我们谁在共享竞赛中获得一等奖。
这里有一些类似的问题,但是这些解决方案似乎不适用于这种情况。
我想要的是系统中所有用户的降级输出,由其父母(赞助商)排名,因此我们可以构建类似于“排行榜”的东西
谢谢您的帮助!
这是更新的查询
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。
您应该添加group by
(以获取每个用户的结果)子句:
select u.AffiliateID, count(u.Email) as afid
from users u
group by u.AffiliateID
order by afid desc
如果您从您需要更多的数据users
表中可以join
下面的查询与结果users
表:
select u.ID, u.Email, t.afid
from users u
join (
select AffiliateID, count(ID) as afid
from users
group by AffiliateID
) t on u.ID = t.AffiliateID
order by t.afid desc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.