首页 > 解决方案 > 每个 ID 的前 5 条记录转换为列

问题描述

我想以这种格式查询一个表:

ID| QTY | CODE         
1 | 200 | C
1 | 500 | C
1 | 1000| C
1 | 2000| C 
2 | 5000| A
2 | 3000| A
2 | 2500| A
2 | 2000| A 
2 | 1000| B
2 | 500 | B

要创建这个:

ID | QTY1 | QTY2 | QTY3 | QTY4 | QTY5| CODE
1  | 200  | 500  | 1000 | 2000 |     |C,C,C,C
2  | 500  | 1000 | 2000 | 2500 |3000 |B,B,A,A

前 5 个数量按升序排列,代码连接在一起。有时数量少于 5 个,在这种情况下缺失值为空白。如果超过 5 个,则取最低的 5 个。

编辑:版本 5.6.41 源表中的记录没有任何顺序,目标是使 QTY 1 中的最小数量增加到 QTY 5

标签: mysql

解决方案


推荐阅读