I have the following database:
This is just a subset of a larger data set that would have been too big to type.
ID | CODE | IDENTIFIERS | COLORS | SHAPES | NUMB |
---|---|---|---|---|---|
101 | 24 | N | RED | CIRCLE | 174 |
102 | 32 | N | BLUE | SQUARE | 155 |
102 | 32 | N | PURPLE | STAR | 223 |
103 | 13 | Y | RED | SQUARE | 143 |
103 | 13 | Y | GREEN | CIRCLE | 123 |
103 | 13 | Y | BLUE | SQUARE | 142 |
I need the following result:
ID | CODE | IDENTIFIERS | COLORS1 | COLORS2 | COLORS3 | SHAPES1 | SHAPES2 | SHAPES3 | NUMB1 | NUMB2 | NUMB3 |
---|---|---|---|---|---|---|---|---|---|---|---|
101 | 24 | N | RED | CIRCLE | 174 | ||||||
102 | 32 | N | BLUE | PURPLE | SQUARE | STAR | 155 | 223 | |||
103 | 13 | Y | RED | GREEN | BLUE | SQUARE | CIRCLE | SQUARE | 143 | 123 | 142 |
I tried:
SELECT ID,
CODE,
IDENTIFIERS,
group_concat(COLORS) AS COLORSS,
group_concat(SHAPES) AS SHAPESS,
group_concat(NUMB) AS NUMBS
FROM (
SELECT a.ID,
a.CODE,
a.IDENTIFIERS,
a.COLORS,
a.SHAPES,
a.NUMB
FROM database AS a
) AS sub
GROUP BY ID, CODE, IDENTIFIERS
I got:
ID | CODE | IDENTIFIERS | COLORS | SHAPES | NUMB |
---|---|---|---|---|---|
101 | 24 | N | RED | CIRCLE | 174 |
102 | 32 | N | BLUE,PURPLE | SQUARE,STAR | 155,223 |
103 | 13 | Y | RED,GREEN,BLUE | SQUARE,CIRCLE,SQUARE | 143,123,142 |
Which is close, but not exactly what I was going for. Any help would be appreciated.