Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете динамични стойности на редове като имена на колони в определен ред

Можете да направите това, като добавите ORDER BY start_time ASC във вашата GROUP_CONCAT функция

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDOException в Connector.php ред 47:SQLSTATE[HY000] [1045] Достъпът е отказан за потребител 'hassan'@'localhost' (използвайки парола:ДА)

  2. Създаване, ако запис не съществува, в противен случай актуализиране?

  3. Python MySQL модул

  4. Генериране на уникални номера за проследяване

  5. Коя база данни работи добре с 200+GB данни?