找出这个问题的标题很难,但以下内容对我来说更难。我希望任何人都可以提供帮助。
我有一个简单的MySQL数据库表。此表填充了包含ID和周访客数的记录。它有2年约200多个网站的记录。
总而言之,我希望能够了解两件事:
1。) - “2009年第54周,网站somethingonline.com有300名访客”(当然很简单。我可以这样做)
2。) - “网站sometingonline.com是该周8%最佳得分网站之一。”
现在,我怎么能得到2号。???当然,我想知道每周所有网站的百分比,所以我得到一个列表:
我如何获得这些结果?这在一个查询中是否可行?
我使用MySQL和PHP。
答案 0 :(得分:2)
关键是涉及visits
表的两个不同“副本”。在此查询中,v1
代表您实际查看的网站。对于这些v1
个网站中的每个网站,我们都会加入visits
表格的副本,在同一周内覆盖网站上覆盖更多访问次数的任何行。
SELECT v1.website_name, v1.visits, COUNT(v2.id)
FROM visits AS v1
INNER JOIN visits AS v2 ON (v1.week_number = v2.week_number AND v2.visits > v1.visits AND v2.id != v1.id)
WHERE week_number = 54
这会告诉您有更多访问者的网站的 号 。要以百分比形式获得该值,请运行单独的查询以简单计算该周内任何访问的网站总数。在PHP脚本中,您可以进行简单的除法以获得所需的百分比。