mysql select distinct - show value and totals


mysql select distinct - show value and totals

我有一个问题,因为我仍然是非常新的mysql,所以这里是我想做的。我有一个包含user1 user2和一个数字

的表

的例子:

user1 user2 1
user5 user17 1
user44 user33 12
user1 user5 1
user1 user24 1
user5 user666 1

我要做的是首先列出第一个用户字段,然后列出按该值排序的user2值的数量。

对于上面的例子,我希望结果看起来像:
user1 3
user5 2
user44 1

原因是user1出现了3次,user5出现了2次,user44出现了1次。这基本上是一个推荐系统,我已经编码,现在我想显示谁推荐大多数用户到我的网站。User1是引用者,user2是被引用者。

我还想列出10行的最大数量,如LIMIT 10

任何建议我将如何做这个查询和输出它与php?我知道如何连接到mysql -我只是不知道如何准确地响应我想要的方式。

谢谢你在这件事上的帮助

听起来你想要这个:

select user1, count(*) Total
from yourtable 
group by user1
order by total desc
limit 0, 10

参见SQL Fiddle with Demo

注意:你的描述中列名不清楚

这是你的问题的解决方案。

select user1, count(*) as Total
from tablename
group by user1
limit 10;

你能试试吗?

SELECT username,count(username)
FROM yourtablename
Group By username
Order by 2 desc