mysql - 按主机分组的每日最大玩家数

标签 mysql date group-by unique concatenation

我的 MySQL 查询有点问题

这是我的结构:

select * from servers group by host;


+-----+----------------------+---------+---------------------+
| id  | host                 | players | time                |
+-----+----------------------+---------+---------------------+
|   1 | 28.167.243.83:27035  |       3 | 2016-12-12 21:03:33 |
|   3 | 78.17.183.116:27015  |      10 | 2016-12-12 21:03:33 |
|  63 | 208.147.243.91:27025 |       1 | 2016-12-12 21:56:01 |
| 115 | 208.147.243.83:27035 |       2 | 2016-12-12 22:30:02 |
| 118 | 206.147.243.83:27035 |       2 | 2016-12-12 22:32:02 |
| 121 | 204.147.243.83:27035 |       2 | 2016-12-12 22:34:01 |
| 124 | 203.147.243.83:27035 |       2 | 2016-12-12 22:36:01 |
| 127 | 202.147.243.83:27035 |       2 | 2016-12-12 22:38:01 |
| 130 | 201.147.243.83:27035 |       2 | 2016-12-12 22:40:01 |
| 133 | 208.147.243.83:27035 |       2 | 2016-12-12 22:42:02 |
+-----+----------------------+---------+---------------------+

结果一直在继续,因为每个主机每 5 分钟有一个新条目。

我希望它看起来像这样:

Example Output

除了第二列应该是这样的:

unique date;max players on that unique date

并且每个唯一日期以逗号分隔到最大玩家数设置

我如何通过查询实现这一点?

截图查询:

SELECT host, TRIM(TRAILING ',' FROM GROUP_CONCAT(DISTINCT CONCAT(UNIX_TIMESTAMP(`time`) * 1000, ',', players) ORDER BY `time` ASC SEPARATOR ';')) AS datapoints FROM servers where `time` between date_sub(now(),INTERVAL 8 WEEK) and now() GROUP BY `host`

SQL fiddle :http://sqlfiddle.com/#!9/a1350d

最佳答案

试试这个:

SELECT
    `host`,
    GROUP_CONCAT(CONCAT(`day`,';',`max_players`)) as `info`
FROM (SELECT
        `host`,
        DATE_FORMAT(`time`,'%Y-%m-%d') as `day`,
        MAX(`players`) as `max_players`
    FROM `so_test_servers`
    GROUP BY `host`, `day`) as A
GROUP BY `host`

关于mysql - 按主机分组的每日最大玩家数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327769/

相关文章:

php - Laravel 比较日期字段和现在日期

PHP - codeigniter - 控制日期格式

ios - 两个时间间隔之间的差异ios组件swift 3

mysql - SQL查询获取最小、最大行数

mysql - 在 SQL 查询中组合 3 个表 - 错误列名称不明确

php - 从 MySQL 中的 DateTime 计算不同的天数

mysql - 如何在 SSIS 中定义 MySQL 变量

java - 如何 - 按键对列表进行分组并使用流 Java 8 拆分值

python - 循环分组依据、聚合并根据组创建新列

PHP 从 While 语句发送 ID 到弹出表单