mysql select distinct - 显示值和总计

时间:2012-12-30 13:58:50

标签: php mysql

我有一个问题因为我对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在user1字段中三次,用户5在两次,用户44在一次。它基本上是我编码的推荐系统,现在我想显示谁将大多数用户推荐到我的网站。 user1是引用者,user2是引用的。

我还想列出最多10行,如LIMIT 10

有什么建议我会怎么做这个查询并用PHP输出?我知道如何连接到mysql的连接部分 - 我只是不知道如何以我想要的方式回应它。

感谢您对此事的帮助:)

3 个答案:

答案 0 :(得分:1)

听起来你想要这个:

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

请参阅SQL Fiddle with Demo

注意:您的列名称在描述中不明确

答案 1 :(得分:0)

以下是您的问题的解决方案。

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

答案 2 :(得分:0)

你能试试吗?

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