this result:
| ID | VAL1 | VAL2 | VAL3 | VAL4 | VAL5 | VAL6 |
|----|------|------|------|--------|--------|--------|
| 1 | x | aa | bb | cc | (null) | (null) |
| 4 | y | ww | ee | (null) | (null) | (null) |
| 6 | z | hh | tt | uu | pp | oo |
from this query:
SELECT
MIN(id) AS id
, col1 AS val1
, MAX(CASE WHEN colno = 1 THEN col2 END) AS val2
, MAX(CASE WHEN colno = 2 THEN col2 END) AS val3
, MAX(CASE WHEN colno = 3 THEN col2 END) AS val4
, MAX(CASE WHEN colno = 4 THEN col2 END) AS val5
, MAX(CASE WHEN colno = 5 THEN col2 END) AS val6
FROM (
SELECT
@row_num :=IF(@prev_value = t.col1, @row_num + 1,1) AS colno
, t.id
, t.col1
, t.col2
, @prev_value := t.col1 as pv
FROM Table1 t
CROSS JOIN(SELECT @row_num := 1 x, @prev_value :='' y) vars
ORDER BY t.col1, t.id ASC
) sq
GROUP BY
col1
ORDER BY
col1
;
But you should note that sites such as this are not places where we just cough up finished work for you for nothing. You are supposed to demonstrate what you have tried at the very least. Claiming urgency isn't helpful, those who provide answers also have work to do and this is entirely voluntary.
Please prepare your next question with some evidence of research and an attempted query.