【发布时间】:2020-10-03 08:13:11
【问题描述】:
所以这是为了显示我的平台在一个小时的范围内有多少连接。
我注释“变量”的地方是将从前端接收的内容,此查询将在后端运行以填充图表。
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
这是我当前的输出 我发布了完整的查询,但在这个输出中我没有得到合作伙伴和合作伙伴 ID 或操作员 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
预期的输出是
10 1591930800-1591934399
15 1591934400-1591937999
【问题讨论】:
-
您的查询应该失败。
SELECT列与GROUP BY不兼容。你需要更好地解释你想做什么。 -
顺便说一句,在表/列标识符中包含数学运算符是一个非常糟糕的主意。
-
编辑问题以将示例数据和所需输出显示为文本表。
-
我期望知道每小时有多少“auth_final” event_type 之类的。 10 1591930800 - 1591934399 15 1591934400 - 1591937999
-
@FábioMagnoni 如果您将sqlfiddle.com 上的某些内容与您的表模式和此测试数据放在一起,那么其他人将更容易帮助您找出查询本身,因为我们将有一个工作构建的示例。请阅读how to ask 了解更多信息。让其他人更容易测试和探索您的数据将使您更容易获得有效的解决方案。 :)
标签: mysql sql mysql-workbench back epoch