mysql - 每个 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