【发布时间】:2020-10-24 22:26:00
【问题描述】:
我有一个这样的 MySQL 表:
+----+-----+-------+------+------+-------+---------------------+
| ID | GID | Name | p1 | p10 | p100 | createdAt |
+----+-----+-------+------+------+-------+---------------------+
| 1 | 100 | Item1 | 150 | 1499 | 10245 | 2020-07-04 12:00:00 |
| 2 | 857 | Item2 | 1047 | 9875 | 90000 | 2020-07-04 12:00:10 |
| 3 | 100 | Item1 | 149 | 1495 | 10245 | 2020-07-04 12:15:00 |
| 4 | 857 | Item2 | 1099 | 9875 | 89999 | 2020-07-04 12:15:10 |
| 5 | 100 | Item1 | 149 | 1495 | 10247 | 2020-07-04 12:30:00 |
| 6 | 857 | Item2 | 970 | 9879 | 89998 | 2020-07-04 12:30:10 |
+----+-----+-------+------+------+-------+---------------------+
我尝试为每个唯一的GID 输出最近的两个createdAt 中的p1, p10, p100
输出示例:
+-----+-------+------+------+-------+---------+----------+-----------+
| GID | Name | p1 | p10 | p100 | p1-last | p10-last | p100-last |
+-----+-------+------+------+-------+---------+----------+-----------+
| 100 | Item1 | 149 | 1495 | 10245 | 149 | 1495 | 10247 |
| 857 | Item2 | 1099 | 9875 | 89999 | 970 | 9879 | 89998 |
+-----+-------+------+------+-------+---------+----------+-----------+
我尝试使用子查询来实现我的目标,但我对此并不满意。
感谢任何可以为我提供信息和帮助的人。
【问题讨论】:
-
你的 MySql 版本是多少?
-
您好,我使用的是mysql Ver 15.1 Distrib 5.5.65-MariaDB
标签: mysql sql mariadb greatest-n-per-group