Kembalikan output jadual pangsi dalam MySQL
Andaikan anda mempunyai jadual MySQL yang disusun seperti berikut:
公司名称 | 操作 | 页数 |
---|---|---|
公司A | 打印 | 3 |
公司A | 打印 | 2 |
公司A | 打印 | 3 |
公司B | 邮件 | NULL |
公司B | 打印 | 2 |
公司B | 打印 | 2 |
公司B | 打印 | 1 |
公司A | 打印 | 3 |
Sekarang, matlamatnya adalah untuk melaksanakan pertanyaan MySQL untuk menghasilkan output yang serupa dengan ini:
公司名称 | 邮件 | 打印1页 | 打印2页 | 打印3页 |
---|---|---|---|---|
公司A | 0 | 0 | 1 | 3 |
公司B | 1 | 1 | 2 | 0 |
Pada asasnya, output ini mewakili jadual pangsi yang mengisih data berdasarkan gabungan tindakan dan kiraan halaman untuk setiap nama syarikat.
Penyelesaian
Untuk mengembalikan output jadual pangsi dalam MySQL, anda boleh menggunakan pernyataan CASE untuk mentakrifkan syarat bagi setiap sel dan menggunakan KUMPULAN OLEH untuk mengisih data mengikut nama syarikat.
Berikut ialah pernyataan SQL untuk contoh yang disediakan:
<code class="language-sql">SELECT P.`company_name`, COUNT( CASE WHEN P.`action`='EMAIL' THEN 1 ELSE NULL END ) AS 'EMAIL', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '1' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 1 pages', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '2' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 2 pages', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '3' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 3 pages' FROM test_pivot P GROUP BY P.`company_name`;</code>
Pertanyaan ini akan mengeluarkan format jadual pangsi yang diingini.
Nota Penting
Atas ialah kandungan terperinci Bagaimana untuk menghasilkan output jadual pivot menggunakan pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!