SQL查询计算最多"流行"值?

时间:2015-03-24 03:28:24

标签: sql database relational-database

这些是我的表格:

表:人物

id---name
1----John
2----Mike
3----George

表:访问次数

id---name---visitor
1----Paris--1
2----Paris--1
3----Paris--1
4----London-1
5----London-1
6----Tokyo--1

现在从这些表中我们可以看到一个名叫约翰(身份1)的人已经三次访问巴黎,两次访问伦敦,一次访问东京。现在我的问题是如何将其翻译成SQL并选择John访问过的最受欢迎的地方的名称(结果是巴黎)?

1 个答案:

答案 0 :(得分:6)

看一下聚合函数:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

SELECT name, count(name) AS visits 
FROM visits
WHERE visitor = 1
GROUP BY name
ORDER BY visits DESC;

这将为您获取该访问者的每个特定位置的访问次数,并在最顶层订购最受欢迎的结果。

如果您只想要最受欢迎,那么您可以限制结果:

SELECT name, count(name) AS visits
FROM visits
WHERE visitor = 1
GROUP BY name
ORDER BY visits DESC LIMIT 1;