首页 > 解决方案 > 试图重新排列mysql中的数据

问题描述

所以我的数据集最近已经超过了excel,所以我把它迁移到了一个mysql数据库中。非常有趣,但是我在 sql 方面有点新手,可以就如何重新排列 aa 表中的数据提供一些指导......最终输出将被拉到 csv 然后放入 excel 这就是所有我的计算完成了。所以这是一个非常简化的主数据版本,如果有解决方案,我可以将其应用于我的实际数据:

+----------------+--------+--------------+-------------+----------+
|      KEY       |  Date  |     Name     | Cups of tea |  Shoes   |
+----------------+--------+--------------+-------------+----------+
| UniqueString1  | 26-Feb | John Smith   |           2 | Slippers |
| UniqueString2  | 24-Feb | Billy        |           4 | Boots    |
| UniqueString3  | 21-Feb | Joe Bloggs   |           5 | Wellies  |
| UniqueString4  | 20-Feb | Simple Simon |           1 | Slippers |
| UniqueString5  | 18-Feb | Jimbob       |           2 | Boots    |
| UniqueString6  | 15-Feb | John Smith   |           4 | Wellies  |
| UniqueString7  | 12-Feb | Joe Bloggs   |           1 | Slippers |
| UniqueString8  | 11-Feb | Jimbob       |           5 | Boots    |
| UniqueString9  | 09-Feb | John Smith   |           4 | Wellies  |
| UniqueString10 | 08-Feb | John Smith   |           3 | Slippers |
+----------------+--------+--------------+-------------+----------+

然后从这里,有另一个表,这是我想要建立的:

+----------------+--------+------------+
|      KEY       |  Date  |    Name    |
+----------------+--------+------------+
| UniqueStringB1 | 27-Feb | John Smith |
| UniqueStringB2 | 27-Feb | Billy      |
| UniqueStringB3 | 27-Feb | Joe Bloggs |
+----------------+--------+------------+

因此,我需要从代码中按日期排列第一个数据集,然后找到“John Smith”的最新匹配项,并将该行中的数据添加到右侧(日期(26/2/2020),杯子茶 (2) 和鞋子 (拖鞋))。然后是“约翰·史密斯”在此右侧的第二场比赛(日期(2020 年 2 月 15 日),茶杯(4 杯)和鞋子(雨靴))。这将持续到没有更多比赛或下一场比赛距此表中的日期(27/2/2020)超过 3 年。所以最终的表格输出将是:

+--------+------------+--------+-------------+----------+--------+-------------+----------+--------+-------------+---------+--------+-------------+----------+
|  Date  |    Name    |  date  | cups of tea |  shoes   |  date  | cups of tea |  shoes   |  date  | cups of tea |  shoes  |  date  | cups of tea |  shoes   |
+--------+------------+--------+-------------+----------+--------+-------------+----------+--------+-------------+---------+--------+-------------+----------+
| 27-Feb | John Smith | 26-Feb |           2 | slippers | 15-Feb |           4 | wellies  | 09-Feb |           4 | wellies | 08-Feb |           3 | slippers |
| 27-Feb | Billy      | 24-Feb |           4 | boots    |        |             |          |        |             |         |        |             |          |
| 27-Feb | Joe Bloggs | 21-Feb |           5 | wellies  | 12-Feb |           1 | slippers |        |             |         |        |             |          |
+--------+------------+--------+-------------+----------+--------+-------------+----------+--------+-------------+---------+--------+-------------+----------+

我很欣赏这可能并不容易,因为我要求将来自多个唯一键的数据放入一行......如果我的数据需要以不同的方式重新输入 mysql,我也可以这样做。

谢谢你的帮助 :)

(澄清一下,mysql 中的所有日期都采用 yyyy-mm-dd 格式,列设置为“DATE”数据)

标签: mysql

解决方案


推荐阅读