SELECT ttp.tower_id, MAX(CASE WHEN progress_type = 1 THEN create_time END) AS time1, MAX(CASE WHEN progress_type = 2 THEN create_time END) AS time2, MAX(CASE WHEN progress_type = 3 THEN create_time END) AS time3, MAX(CASE WHEN progress_type = 4 THEN create_time END) AS time4, MAX(CASE WHEN progress_type = 5 THEN create_time END) AS time5, MAX(CASE WHEN progress_type = 6 THEN create_time END) AS time6, MAX(CASE WHEN progress_type = 7 THEN create_time END) AS time7 FROM tb_tower_progress ttp GROUP BY ttp.tower_id ORDER BY ttp.tower_id;