Bagaimana untuk melaksanakan output jadual pangsi dalam MySQL
P粉481035232
2023-08-21 16:06:24
<p>Jika saya mempunyai jadual MySQL seperti ini:</p>
<pra>bilangan halaman tindakan nama_syarikat
----------------------------------
CETAKAN SYARIKAT 3
CETAKAN SYARIKAT 2
CETAKAN SYARIKAT 3
Syarikat BEMAIL
Syarikat B CETAKAN 2
Syarikat B CETAKAN 2
SYARIKAT B CETAKAN 1
CETAKAN SYARIKAT 3
</pra>
<p>Adakah mungkin untuk menjalankan pertanyaan MySQL untuk mendapatkan output berikut: </p>
<pra>nama_syarikat CETAK EMEL 1 halaman CETAK 2 halaman CETAK 3 halaman
------------------------------------------------- ----------
SyarikatA 0 0 1 3
SyarikatB 1 1 2 0
</pra>
<p>Ideanya ialah <code>pagecount</code> boleh berbeza-beza, jadi bilangan lajur dalam output harus mencerminkannya, satu untuk setiap <code>action</code>/<code>pagecount< lajur ;/kod>, kemudian bilangan klik untuk setiap <kod>nama_syarikat</kod>. Saya tidak pasti sama ada ini dipanggil jadual pangsi, tetapi adakah sesiapa yang mencadangkan ini? </p>
Penyelesaian saya ialah menggunakan T-SQL tanpa sebarang pivot:
Ini pada asasnya jadual pangsi.
Tutorial terperinci tentang cara melaksanakan fungsi ini boleh didapati di sini: http://www.artfulsoftware.com/infotree/qrytip.php?id=78
Saya mengesyorkan membaca artikel ini dan menyesuaikan penyelesaiannya mengikut keperluan anda.
Dikemas kini
Memandangkan pautan di atas tidak lagi tersedia buat masa ini, saya merasakan keperluan untuk memberikan beberapa maklumat tambahan untuk sesiapa yang mencari jawapan kepada jadual pangsi mysql di sini. Ia mengandungi banyak maklumat, dan saya tidak akan menyalin segala-galanya di sini (apatah lagi saya tidak mahu menyalin pengetahuan mereka yang luas), tetapi saya akan memberikan beberapa cadangan tentang cara bekerja dengan jadual pangsi dalam sql, kepada The persoalan yang ditimbulkan oleh peku adalah contohnya.
Mungkin pautan akan dipulihkan tidak lama lagi, saya akan terus mengikutinya.
Kaedah hamparan...
Ramai orang hanya menggunakan alat hamparan seperti MSExcel, OpenOffice atau lain-lain untuk tujuan ini. Ini adalah penyelesaian yang sah, hanya salin data di sana dan gunakan alat yang disediakan oleh GUI untuk menyelesaikan masalah.
Tetapi...ini bukan perkara utama, malah mungkin membawa kepada beberapa kelemahan, seperti cara mengimport data ke dalam hamparan, isu penskalaan, dsb.
SQL cara...
Andaikan jam tangannya kelihatan seperti ini:
Sekarang lihat jam yang dia mahukan:
行(
EMAIL
,PRINT x pages
)表示条件。主要分组是按company_name
dijalankan.Untuk menetapkan syarat, ini lebih seperti menggunakan pernyataanKES 语句。为了按某个东西进行分组,使用...
CASE
GROUP BY
. Untuk mengumpulkan mengikut sesuatu, gunakan...GROUP BY
.SQL asas untuk menyediakan jadual pangsi ini boleh menjadi seperti ini:
Ini sepatutnya memberikan hasil yang diinginkan dengan cepat. Kelemahan utama pendekatan ini ialah anda perlu menentukan lebih banyak syarat dalam pernyataan SQL apabila anda ingin mempunyai lebih banyak baris dalam jadual pangsi.
Ini juga boleh dikendalikan, jadi orang ramai cenderung menggunakan kenyataan, rutin, kaunter, dsb.
Beberapa pautan tambahan mengenai topik ini: