mysql - 试图重新排列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”数据)
解决方案
推荐阅读
- python - 通过 LDAP 组成员资格限制特定的 CAS 保护资源
- c# - 从受密码保护的 Zip 文件的文件中读取数据而不提取/解压缩它
- javascript - IOS 找不到变量:ImageCapture
- php - 如何在functions.php中创建301重定向规则
- image - Symfony通过文章内部的表单获取图像
- date - 添加新行时自动插入日期戳
- c++ - 使用 ucnv_convert() 时为韩语显示垃圾字符
- twitter - Twitter API - 为拥有数百万关注者的帐户获取关注者列表的有效方法
- vhdl - 'high/'low 的函数重载
- python - Python DataFrame 只有一列