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

标签 mysql sql

我有一个 MYSQL 表记录对网站的点击,其形式如下(如果需要,这可以更改,我正处于项目的“这是否可行”阶段):

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

等等

我想做的是计算每天的点击次数,以及平均每天的加载时间以及我稍后要做的其他事情。

要计算点击次数,我知道的唯一方法是使用服务器端语言 SELECT *,然后循环,使用一天开始和结束之间的 Unix 时间计算行数。执行此操作的正确 SQL 方法是什么,还是应该坚持选择 *, 循环?

最佳答案

假设你的表名是visits。

select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v group by visitDate;

应该可以正常工作.. 如果您想按页面 url 过滤结果;

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;

我还没有测试过其中任何一个,可能需要一些修改。

关于mysql - 计算与unix时间戳的不同间隔匹配的行数(MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154363/

相关文章:

php - 关闭全局 session 变量作为注销按钮

SQL:仅输出每个框中的球的颜色

mysql - 每当包含的值为 NULL 时,SQL 查询为 SUM(expression) 返回 NULL

MySQL - 在单独的列中显示两个内部联接

mysql - sql根据其他表选择时间戳之前的最新10个条目

mysql - 显示参与项目的所有用户并汇总小时数

php - 如何获取 %SQL% 之前和之后的 50 个字符?

sql - 获取 .BAT 文件或 SQLCMD 以提示用户输入

java - 如何仅使用 java 原始套接字验证 DB 远程服务器是否正在运行 [Telnet]

MySQL 如何使用 WHERE 中的两个加密字段更新记录