SQL 查询以计算最多 "popular" 值?

SQL query to count most "popular" value?

这些是我的表格:

Table:人物

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

Table:访问次数

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

现在从这些表中我们可以读到一个名叫约翰(id 1)的人去过巴黎 3 次,伦敦 2 次,东京 1 次。现在我的问题是如何将其翻译成 SQL 和 select John 访问过的最受欢迎的地方的名称(结果是巴黎)?

看看聚合函数: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;