计算匹配unix时间戳(MYSQL)的不同间隔的行

时间:2012-04-14 14:31:21

标签: mysql sql

我有一个MYSQL表记录到网站的命中形式(如果需要,这可以改变,我在项目的'这是可行的'阶段):

+----+-----------+---------+----------+------------+
| id | useragent |   url   | loadTime |  unixtime  |
+----+-----------+---------+----------+------------+
|  1 | Chrome    | /       |      300 | 1334354015 |
|  2 | Chrome    | /       |      330 | 1334354020 |
|  3 | Opera     | /about/ |      310 | 1334354100 |
+----+-----------+---------+----------+------------+

我想做的是计算每一天的点击次数,以及平均每天的loadTime和我稍后会做的其他事情。

要计算命中数,我知道如何操作的唯一方法是使用服务器端语言SELECT *,然后循环,计算在一天的开始和结束之间具有unix时间的行数。什么是正确的SQL方法,或者我应该坚持选择*,循环?

1 个答案:

答案 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;

我还没有测试过这些,可能需要稍加修改。