sql >> Databáze >  >> RDS >> Mysql

Vyberte dynamické hodnoty řádků jako názvy sloupců v určitém pořadí

Můžete to udělat přidáním ORDER BY start_time ASC ve vaší GROUP_CONCAT funkce

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`' 
         )
          ORDER BY start_time ASC        
 )
  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;

Fiddle Demo




  1. Použití PostgreSQL Logical Replication k udržení vždy aktuálního testovacího serveru pro čtení/zápis

  2. Jak mohu vytvořit vlastní typ sloupce pomocí Typesafe Slick ve Scala?

  3. Neznámý sloupec 'Project2.Name' v ​​'klauzuli where'

  4. Oracle sql MERGE INTO s jedinou klauzulí where