Php SQL查询以获取24小时图表上的结果
我使用以下结构将网站上的点击存储在Mysql数据库中:Php SQL查询以获取24小时图表上的结果,php,mysql,Php,Mysql,我使用以下结构将网站上的点击存储在Mysql数据库中: select * from contenido_clicks; +-------------+-------------+------------+ | idContenido | fecha_click | servicetag | +-------------+-------------+------------+ | 5 | 1392829606 | HJCS302 | | 8 | 1
select * from contenido_clicks;
+-------------+-------------+------------+
| idContenido | fecha_click | servicetag |
+-------------+-------------+------------+
| 5 | 1392829606 | HJCS302 |
| 8 | 1392832379 | HJCS302 |
| 5 | 1392832433 | HJCS302 |
| 5 | 1392832435 | HJCS302 |
| 5 | 1392832437 | HJCS302 |
And so on...
在这里,我有很多来自不同日期和时间的条目,我需要获取所有条目,并将其放置在24小时图表上,以显示人们一天中点击次数最多的时间。我可以通过以下方式获得每小时的点击次数:
SELECT cc.fecha_click div 3600 as Horas, COUNT(cc.idContenido) as Clicks
FROM contenido_clicks cc
GROUP BY fecha_click div 3600 ASC
但我不知道如何将它们合并到24小时工作表中
有什么想法吗?创建一个包含24行的Horas域表,并用它左键连接contenido_clicks表
create table Horas
(
Hora integer not null
)
Insert into Horas (Hora) vlaues (0)
Insert into Horas (Hora) vlaues (1)
.
.
.
Insert into Horas (Hora) vlaues (23)
select *
from Horas h
left join (
SELECT cc.fecha_click div 3600 as Horas, COUNT(cc.idContenido) as Clicks
FROM contenido_clicks cc
GROUP BY fecha_click div 3600
) as hh on hh.Hora = h.Hora
order by h.Hora
我想你想做这样的事情
SELECT *
FROM contenido_clicks
WHERE DATE_ADD(NOW(), INTERVAL 24 HOUR) > fecha_click
我认为这将解决您的问题感谢jean提供的解决方案,我写下以下查询:
SELECT h.hora, COUNT(cc.idContenido) as Clicks
FROM horas h
LEFT JOIN contenido_clicks cc ON h.hora = DATE_FORMAT(FROM_UNIXTIME(cc.fecha_click), '%H')
GROUP BY h.hora;
并得到如下结果:
+------+--------+
| hora | Clicks |
+------+--------+
| 0 | 0 |
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 5 |
| 10 | 3 |
| 11 | 7 |
| 12 | 4 |
| 13 | 3 |
| 14 | 0 |
| 15 | 5 |
| 16 | 1 |
| 17 | 5 |
| 18 | 8 |
| 19 | 0 |
| 20 | 0 |
| 21 | 1 |
| 22 | 0 |
| 23 | 0 |
+------+--------+
24 rows in set (0.00 sec)
哪些是正确的结果。是否要按日期/小时进行分组?小时字段在数据库表中的位置?不准确。如果有几个设备在11:00和12:00之间的不同日期进行点击,我需要该小时的总点击量。@SohailYasmin:我只有fecha_clickIs
fetcha_click的时间戳
unix时间戳?你应该改用DateTime
。我发现我需要一个Hora字段来解决这个问题。我想时间戳应该是多少。