MySQL按小时分组的时间

问题描述 投票:1回答:1

所以这是要显示我的平台在一个小时范围内的一段时间内有多少个连接。

在这里我评论“变量”是从前端接收到的,该查询将在后端运行以填充图表。

SELECT
    count(server_events.event_type),
    server_events.time_stamp,
    hotspots.partner_id,
    hotspots.partner,
    hotspots.operator_id
FROM
    `msp-data`.server_events
INNER JOIN 
    `adserver`.hotspots, `adserver`.operator
WHERE 
    server_events.time_stamp between "1591930800" and "1592017199" -- variable
    and server_events.event_type = "auth_final"
    and server_events.nas_id = adserver.hotspots.code
    and hotspots.partner_id = "1" -- variable
    and hotspots.operator_id = "2" -- variable
GROUP BY
    server_events.time_stamp div 3600
ORDER BY
    server_events.time_stamp

这是我当前的输出我发布了完整的查询,但是在此输出中,我没有获得合作伙伴和partner_id或operator_id的过滤器

count time_stamp partner_id operator_id
6   1591944931  1   1
12  1591945711  1   5
6   1591952103  1   1
36  1591952621  1   1
18  1591956063  1   1
12  1591962118  1   4
6   1591966538  1   1
6   1591968554  1   1
12  1591973267  1   5
18  1591976918  1   1
18  1591978620  1   5
12  1591983139  1   5
12  1591984830  1   1
24  1591989873  1   1
12  1591993080  1   1
30  1591995612  1   1

output

mysql sql mysql-workbench back epoch
1个回答
0
投票

尝试在下面执行。并尝试考虑草莓的建议。

SELECT
    count(server_events.event_type),
    server_events.time_stamp/3600,
    hotspots.partner_id,
    hotspots.partner,
    hotspots.operator_id
FROM
    `msp-data`.server_events
INNER JOIN 
    `adserver`.hotspots, `adserver`.operator
WHERE 
    server_events.time_stamp between "1591930800" and "1592017199" -- variable
    and server_events.event_type = "auth_final"
    and server_events.nas_id = adserver.hotspots.code
    and hotspots.partner_id = "1" -- variable
    and hotspots.operator_id = "2" -- variable
GROUP BY
    server_events.time_stamp/3600,
    hotspots.partner_id,
    hotspots.partner,
    hotspots.operator_id
ORDER BY
    2

© www.soinside.com 2019 - 2024. All rights reserved.