Dari pendekatan pertanyaan referensi menggunakan group_concat
Anda dapat melakukannya, tetapi perhatikan satu hal saat id pekerjaan Anda meningkat per exec_id
grup lalu group_concat
pendekatan tidak akan optimal karena panjang default 1024 karakter untuk digabungkan dan untuk kolom dinamis Anda ini pasti akan melewati batas itu, tetapi batas ini dapat ditingkatkan seperti yang disebutkan dalam documentation
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT
CONCAT('MAX(CASE WHEN job_id = ''',
job_id,
''' THEN start_time END) `',
job_id,
'_start`',
',',
'MAX(CASE WHEN job_id = ''',
job_id,
''' THEN end_time END) `',
job_id,
'_end`'
)
)
INTO @sql
FROM t;
SET @sql = CONCAT('SELECT exec_id, ', @sql, '
FROM t
GROUP BY exec_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;