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

Cara Menghapus Pivot Tabel di MySQL

Terkadang Anda perlu mengubah posisi kolom menjadi baris, atau menghapus tabel di MySQL. Karena MySQL tidak memiliki fungsi untuk UNPIVOT atau REVERSE PIVOT tabel, Anda perlu menulis kueri SQL untuk mengubah kolom menjadi baris. Berikut cara unpivot tabel di MySQL.

Cara Menghapus Pivot Tabel di MySQL

Katakanlah Anda memiliki tabel pivot berikut

mysql>create table data(id int, a varchar(255), b varchar(255), c varchar(255));
mysql>insert into data(id,a,b,c) values(1,'a1','b1','c1'),(2,'a1','b1','c1');
mysql>select * from data;

+------+------+------+------+
| id   | a    | b    | c    |
+------+------+------+------+
|    1 | a1   | b1   | c1   |
|    2 | a1   | b1   | c1   |
+------+------+------+------+

Katakanlah Anda ingin unpivot tabel di MySQL menjadi berikut ini.

1 | a1 | a
1 | b1 | b
1 | c1 | c
2 | a2 | a
2 | b2 | b
2 | c2 | c

Bonus Baca : Cara Membuat Tabel Pivot Dinamis di MySQL

Unpivot Tabel di MySQL

Inilah kueri untuk melakukan unpivot di SQL. Karena MySQL tidak menawarkan fungsi UNPIVOT, Anda perlu menggunakan klausa UNION ALL untuk membalikkan pivot tabel di MySQL.

mysql> select id, 'a' col, a value
      from data
      union all
      select id, 'b' col, b value
      from data
      union all
      select id, 'c' col, c value
      from data;
+------+-----+-------+
| id   | col | value |
+------+-----+-------+
|    1 | a   | a1    |
|    2 | a   | a1    |
|    1 | b   | b1    |
|    2 | b   | b1    |
|    1 | c   | c1    |
|    2 | c   | c1    |
+------+-----+-------+

Dalam kueri di atas, pada dasarnya kami memotong tabel asli menjadi 3 yang lebih kecil – satu untuk setiap kolom a,b,c dan kemudian menambahkannya satu di bawah yang lain menggunakan UNION ALL.

Jika Anda ingin memfilter baris, Anda dapat menambahkan klausa WHERE seperti yang ditunjukkan di bawah ini

mysql> select id, 'a' col, a value
      from data
      WHERE condition
      union all
      select id, 'b' col, b value
      from data
      WHERE condition
      union all
      select id, 'c' col, c value
      from data
      WHERE condition;

Bonus baca: Cara Transpose Baris ke Kolom Secara Dinamis di MySQL

Sayangnya, ini membosankan tetapi salah satu dari hanya 2 cara unpivot di MySQL. Yang lainnya melibatkan melakukan gabungan silang, seperti yang ditunjukkan di bawah ini.

mysql> select t.id,
       c.col,
       case c.col
         when 'a' then a
         when 'b' then b
         when 'c' then c
       end as data
     from data t
     cross join
     (
       select 'a' as col
       union all select 'b'
       union all select 'c'
     ) c;
+------+-----+------+
| id   | col | data |
+------+-----+------+
|    1 | a   | a1   |
|    2 | a   | a1   |
|    1 | b   | b1   |
|    2 | b   | b1   |
|    1 | c   | c1   |
|    2 | c   | c1   |
+------+-----+------+

Bonus Baca :Cara Mengotomatiskan Query Pivot Table di MySQL

Anda dapat menyesuaikan kueri di atas ke tabel unpivot di MySQL, menggunakan klausa WHERE. Anda juga dapat menggunakan alat pelaporan untuk memplot hasil dalam tabel. Berikut adalah contoh tabel yang dibuat menggunakan Ubiq.

Jika Anda ingin membuat tabel pivot, grafik &dasbor dari database MySQL, Anda dapat mencoba Ubiq. Kami menawarkan uji coba gratis selama 14 hari.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ScaleGrid DBaaS Memperluas Layanan Hosting MySQL Melalui AWS Cloud

  2. Sertakan header saat menggunakan SELECT INTO OUTFILE?

  3. MySQL Tampilkan Hibah untuk semua Pengguna

  4. Bekerja dengan Pemicu di Database MySQL - Sebuah Tutorial

  5. Cara Memilih Baris N Teratas Per Grup di MySQL