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

menggunakan fungsi pivot di mysql untuk membuat tabel apriori

Untuk kueri GROUP_CONCAT Anda; dalam kasus Anda stmt, Anda merujuk ke tabel produk Anda sebagai product diri. Tetapi dalam kueri bergabung Anda, Anda merujuk ke tabel produk sebagai alias p . Karena kueri group_concat pertama adalah bagian dari kueri bergabung, Anda harus menjaga agar alias tabel tetap sama.(membuat perubahan pada baris 5)

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'count(case when p.name = ''',  
      product.name,
      ''' then 1 end) AS ',
      replace(product.name, ' ', '')
    )
  ) INTO @pivotsql
from product;

SET @sql = CONCAT('SELECT omd.order_match_id, ', @pivotsql, ' from order_match_detail omd
left join order_match om
  on omd.order_match_id = om.id
left join product p
  on omd.product_id = p.id
  where om.order_status_id in (4, 5, 6, 8)
group by omd.order_match_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih baris terpisah dari dua tabel, pesan berdasarkan tanggal

  2. SQL Sisipkan ke dalam tabel hanya jika catatan tidak ada

  3. Prosedur tersimpan untuk mendaftar semua minggu di antara dua tanggal

  4. Bagaimana cara membagi output dari mysqldump menjadi file yang lebih kecil?

  5. kunci utama komposit (alfanumerik) dan peningkatan otomatis