Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tabel pivot dinamis MySQL

Karena nilainya ada di int Anda membuatnya menjadi nama kolom, Anda harus membungkus nilainya dengan tanda centang

sql akan terlihat seperti:

max(case when user_id = 1 then score end) as `1`

Kueri lengkapnya adalah:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS `',
      user_id, '`'
    )
  ) INTO @sql
FROM  measure2;

SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' 
                  FROM measure2 
                  GROUP BY inspection_date');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Lihat SQL Fiddle dengan 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. Menyimpan Data di MySQL sebagai JSON

  2. Query MySQL Umum Teratas

  3. Cara membuat blog di PHP dan database MySQL - Desain DB

  4. Cara Memformat Angka di MySQL

  5. Cara Menghentikan/Memulai MySQL menggunakan MySQL Workbench