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

kueri pivot/tab silang mysql

Sementara jawaban statis @ John berfungsi dengan baik, jika Anda memiliki jumlah kolom yang tidak diketahui yang ingin Anda ubah, saya akan mempertimbangkan untuk menggunakan pernyataan yang disiapkan untuk mendapatkan hasilnya:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'GROUP_CONCAT((CASE node_id when ',
      node_id,
      ' then entered_value else NULL END)) AS user_input',
      node_id
    )
  ) INTO @sql
FROM trn_user_log;


SET @sql = CONCAT('SELECT app_id, transaction_id, mobile_no, ', @sql, ' 
                  FROM trn_user_log 
                  GROUP BY app_id, transaction_id, mobile_no');

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

lihat SQL Fiddle dengan Demo

Sejauh kedua Anda, mohon klarifikasi apa yang Anda coba lakukan itu tidak jelas.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menghubungkan ke MySQL menggunakan Python

  2. MySQL:Aktifkan LOAD DATA LOCAL INFILE

  3. PADA KUNCI DUPLICATE + AUTO INCREMENT masalah mysql

  4. Bagaimana Fungsi FROM_BASE64() Bekerja di MySQL

  5. MySQL Menyukai banyak nilai