首頁 > 資料庫 > mysql教程 > 如何使用 MySQL 查詢產生資料透視表輸出?

如何使用 MySQL 查詢產生資料透視表輸出?

Mary-Kate Olsen
發布: 2025-01-25 20:37:09
原創
392 人瀏覽過

How to Generate a Pivot Table Output Using MySQL Queries?

在MySQL中傳回透視表輸出

假設您有一個MySQL表,其組織方式如下:

公司名称 操作 页数
公司A 打印 3
公司A 打印 2
公司A 打印 3
公司B 邮件 NULL
公司B 打印 2
公司B 打印 2
公司B 打印 1
公司A 打印 3

現在,目標是執行一個MySQL查詢以產生類似此的輸出:

公司名称 邮件 打印1页 打印2页 打印3页
公司A 0 0 1 3
公司B 1 1 2 0

從本質上講,此輸出表示一個透視表,它根據每個公司名稱的操作和頁數組合對資料進行分類。

要在MySQL中傳回透視表輸出,您可以使用CASE語句定義每個儲存格的條件,並使用GROUP BY依公司名稱分類資料。

以下是提供的範例的SQL語句:

<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>
登入後複製

此查詢將輸出所需的透視表格式。

重要說明

  • 對於具有更多操作/頁數組合的更大表,SQL語句將需要更多CASE條件。
  • 要適應動態條件,您可以使用預處理語句或例程。

以上是如何使用 MySQL 查詢產生資料透視表輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板