- Beranda
- Programmer Forum
[MySQL] 3 Langkah membuat Pivot Table (Dynamic Rows to Columns)
...
TS
hawkeye22
[MySQL] 3 Langkah membuat Pivot Table (Dynamic Rows to Columns)
Sepertinya, sudah banyak yang bertanya tentang Pivot Table dengan istilah yang berbeda-beda..
Saya coba buat sebuah tutorial Khusus berdasarkan masalah di Thread ini supaya untuk selanjutnya, masalah seperti ini tidak berulang-ulang dipertanyakan..
Berdasarkan kasus di atas, diketahui ada sebuah table dengan data nilai
dari table tersebut, hasil yang diinginkan adalah, seperti ini:
lalu ketika ditambahkan data baru, misalnya Nama:Soleh, Nilai:40,50,
hasil yang diinginkan adalah, seperti ini:
Sederhanya, untuk membuat pivot table seperti di atas, ada 3 langkah:
Jika diperhatikan, Table Nilai di atas memiliki 3 kolom yaitu, id, nama, dan nilai dengan data nilai perorang memiliki 2 nilai berbeda,
karena dalam table ini telah ditentukan masing-masing memiliki 2 nilai, maka perlu tambahan 1 kolom untuk menyamakan jenis nilai, sebut saja kolom order.
Hasilnya, Table Nilai akan menjadi seperti ini.
Dari Table Nilai yg baru, maka dapat diketahui bahwa nilai memiliki 2 jenis, yaitu nilai 1 dan 2 berdasarkan kolom order.
Setelah itu, mari kita mulai menjalankan 3 Langkah Membuat Pivot Table.
1. query untuk membuat columnHeader
Jika kita menginginkan rows berisi `nama`menjadi header, maka cukup kita membuat pengelompokan berdasarkan `nama`,
kira-kira seperti ini cara mengelompokkannya:
Hasilnya, seperti DEMO
2. Menentukan queryBuilder untuk membuat query 1 menjadi dinamis
Untuk membangun ratusan/ribuan Column Header, jika kita buat satu persatu seperti Nomor 1 di atas, tentunya akan GEMPORRR DIJAMIN!!!
ini solusinya:
hasilnya, akan seperti DEMO2
bisa kita lihat, kita gunakan GROUP_CONCAT "itu" lebih baik.
saya sampaikan terima kasih kepada keluarga CONCAT..
3. Membuat store prosedur
Akhirnya, kita sampai di penghujung acara
begini kira2 prosedurnya:
dan hasilnya bisa dilihat DEMO3
ok, cukup sekian, semoga bermanfaat,,
Saya coba buat sebuah tutorial Khusus berdasarkan masalah di Thread ini supaya untuk selanjutnya, masalah seperti ini tidak berulang-ulang dipertanyakan..
Berdasarkan kasus di atas, diketahui ada sebuah table dengan data nilai
Spoiler for Tabel Nilai:
dari table tersebut, hasil yang diinginkan adalah, seperti ini:
Spoiler for HasilYgDiinginkan:
lalu ketika ditambahkan data baru, misalnya Nama:Soleh, Nilai:40,50,
hasil yang diinginkan adalah, seperti ini:
Spoiler for HasilLainnya:
Sederhanya, untuk membuat pivot table seperti di atas, ada 3 langkah:
Spoiler for 3 Langkah membuat Pivot Table:
Jika diperhatikan, Table Nilai di atas memiliki 3 kolom yaitu, id, nama, dan nilai dengan data nilai perorang memiliki 2 nilai berbeda,
karena dalam table ini telah ditentukan masing-masing memiliki 2 nilai, maka perlu tambahan 1 kolom untuk menyamakan jenis nilai, sebut saja kolom order.
Hasilnya, Table Nilai akan menjadi seperti ini.
Spoiler for TableNilaiBaru:
Dari Table Nilai yg baru, maka dapat diketahui bahwa nilai memiliki 2 jenis, yaitu nilai 1 dan 2 berdasarkan kolom order.
Setelah itu, mari kita mulai menjalankan 3 Langkah Membuat Pivot Table.
1. query untuk membuat columnHeader
Jika kita menginginkan rows berisi `nama`menjadi header, maka cukup kita membuat pengelompokan berdasarkan `nama`,
kira-kira seperti ini cara mengelompokkannya:
Spoiler for columnHeader:
Hasilnya, seperti DEMO
2. Menentukan queryBuilder untuk membuat query 1 menjadi dinamis
Untuk membangun ratusan/ribuan Column Header, jika kita buat satu persatu seperti Nomor 1 di atas, tentunya akan GEMPORRR DIJAMIN!!!
ini solusinya:
Spoiler for columnHeaderMaker:
hasilnya, akan seperti DEMO2
bisa kita lihat, kita gunakan GROUP_CONCAT "itu" lebih baik.
saya sampaikan terima kasih kepada keluarga CONCAT..
3. Membuat store prosedur
Akhirnya, kita sampai di penghujung acara
begini kira2 prosedurnya:
Spoiler for StoreProcedure:
dan hasilnya bisa dilihat DEMO3
Spoiler for Hasil Akhir:
ok, cukup sekian, semoga bermanfaat,,
Diubah oleh hawkeye22 17-05-2013 15:42
nona212 memberi reputasi
2
19.2K
22
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
20.2KThread•4.3KAnggota
Terlama
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru