gpt4 book ai didi

php - 从MySQL中选择数据进行多折线图

转载 作者:行者123 更新时间:2023-11-29 18:07:47 26 4
gpt4 key购买 nike

我现在正在努力将数据构建为 Google Chart 可接受的模型。

图表需要这样的数据(json):

[
['Time', 'url1', 'url2', 'url3' ],
['2017-12-06T12:00:00', 1, 2, 4 ],
['2017-12-06T13:00:00', 3, 6, 5 ],
['2017-12-06T14:00:00', 2, 5, 2 ],
['2017-12-06T15:00:00', 7, 3, 1 ],
]

所以应该以类似的方式提取。有 3 个选项 - 在 PHP/JS 中构建所有数据或使用 MySQL 选择它,然后进行清理。

MySQL 数据库表“ping_history”如下所示:

|--------|-----------|-------------|---------------------|
| ID | url | ping | created_at |
|--------|-----------|-------------|---------------------|
| 0 | url1 | 1 | 2017-12-06T12:00:00 |
|--------|-----------|-------------|---------------------|
| 1 | url2 | 2 | 2017-12-06T12:00:00 |
|--------|-----------|-------------|---------------------|
| 2 | url3 | 4 | 2017-12-06T12:00:10 |
|--------|-----------|-------------|---------------------|
| 3 | url1 | 3 | 2017-12-06T13:00:20 |
|--------|-----------|-------------|---------------------|
| 4 | url2 | 6 | 2017-12-06T13:00:30 |
|--------|-----------|-------------|---------------------|
| 5 | url3 | 5 | 2017-12-06T13:00:00 |
|--------|-----------|-------------|---------------------|
| 6 | url1 | 2 | 2017-12-06T14:00:40 |
|--------|-----------|-------------|---------------------|
| 7 | url2 | 5 | 2017-12-06T14:00:00 |
|--------|-----------|-------------|---------------------|
| 8 | url3 | 2 | 2017-12-06T14:00:00 |
|--------|-----------|-------------|---------------------|
| 9 | url1 | 7 | 2017-12-06T15:00:01 |
|--------|-----------|-------------|---------------------|
| 10 | url2 | 3 | 2017-12-06T15:00:02 |
|--------|-----------|-------------|---------------------|
| 11 | url3 | 1 | 2017-12-06T15:00:03 |
|--------|-----------|-------------|---------------------|

记录按 HOUR(created_at) 分组,ping 选择为 MAX(ping)。

如何使这些分组的 url 行显示为列标题或第一行,并且特定 url 的所有记录都垂直排列...如果没有日期值 - 我们使用 null。

也许我只是不知道这个方法是如何调用的,也无法谷歌它。像旋转结果集之类的东西:)请帮忙!

最佳答案

尝试以下操作

SELECT
DATE_FORMAT(created_at, "%Y-%m-%dT%H:00:00") `Time`,
MAX(CASE WHEN url='url1' THEN ping END) `url1`,
MAX(CASE WHEN url='url2' THEN ping END) `url2`,
MAX(CASE WHEN url='url3' THEN ping END) `url3`
FROM ping_history
GROUP BY DATE_FORMAT(created_at, "%Y-%m-%dT%H:00:00")

关于php - 从MySQL中选择数据进行多折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47681581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com