【问题标题】:SQL query to count most "popular" value?SQL查询来计算最“流行”的值?
【发布时间】:2015-03-24 03:28:23
【问题描述】:

这些是我的桌子:

表格:人

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

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

【问题讨论】:

  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?

标签: sql database relational-database


【解决方案1】:

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

【讨论】:

  • 谢谢,这比预期的要容易得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多