我有一个MYSQL表记录到网站的命中形式(如果需要,这可以改变,我在项目的'这是可行的'阶段):
+----+-----------+---------+----------+------------+
| id | useragent | url | loadTime | unixtime |
+----+-----------+---------+----------+------------+
| 1 | Chrome | / | 300 | 1334354015 |
| 2 | Chrome | / | 330 | 1334354020 |
| 3 | Opera | /about/ | 310 | 1334354100 |
+----+-----------+---------+----------+------------+
等
我想做的是计算每一天的点击次数,以及平均每天的loadTime和我稍后会做的其他事情。
要计算命中数,我知道如何操作的唯一方法是使用服务器端语言SELECT *,然后循环,计算在一天的开始和结束之间具有unix时间的行数。什么是正确的SQL方法,或者我应该坚持选择*,循环?
答案 0 :(得分:2)
假设您的表名是访问次数。
select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v group by visitDate;
应该工作得很好.. 如果你想按页面网址过滤结果;
select date(FROM_UNIXTIME(unixtime)) as visitDate, url, count(v.id) from visits v group by visitDate, url;
如果你想看到今天的访问;
select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v where date(now()) = date(FROM_UNIXTIME(unixtime)) group by visitDate;
我还没有测试过这些,可能需要稍加修改。