首頁 > 資料庫 > mysql教程 > MySQL 可以在不使用外部腳本的情況下將長格式資料轉換為寬格式資料嗎?

MySQL 可以在不使用外部腳本的情況下將長格式資料轉換為寬格式資料嗎?

Susan Sarandon
發布: 2024-12-25 10:09:15
原創
364 人瀏覽過

Can MySQL Transform Long-Format Data to Wide-Format Without External Scripts?

在MySQL 中將資料從長格式重塑為寬格式

在MySQL 中,資料通常以長格式或高格式儲存,其中多個屬性對於同一實體儲存在單獨的行中。然而,出於分析和報告的目的,使用寬格式的資料會更方便,其中每行代表一個實體,每列代表一個屬性。

MySQL 可以用來轉換長格式資料嗎沒有外部腳本的寬格式?是的,可以使用 MySQL 強大的資料透視表功能。

建立寬表

  1. 取得鍵列表:使用查詢來擷取長格式表中存在的所有不同鍵例如:

    SELECT DISTINCT key FROM table;
    登入後複製
  2. 建立寬表:建立一個包含所需列的新表。列名應與鍵相對應。例如,如果您有鍵“總統”和“貨幣”,則表應包含名為“總統”和“貨幣”的欄位。

填入表值

使用交叉表查詢來填入寬表中的值。以下查詢示範了這一點:

SELECT country,
       MAX(IF(key='President', value, NULL)) AS President,
       MAX(IF(key='Currency', value, NULL)) AS Currency,
       ...  -- Add other key-value pairs as needed

FROM table
GROUP BY country;
登入後複製

此查詢檢查長表中的每一行,並僅傳回該國家/地區每個鍵值對的最新值。具有 IF 條件的 MAX 函數可確保保留最新值。

例如,問題中提供的輸入資料將轉換為以下寬範圍格式:

輸出:

country attrName attrValue key
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan 5

結論

country President Currency
US Obama Dollar
China Hu Yuan

使用MySQL資料透視表,重塑很簡單資料從長格式變成寬格式,使其更適合分析和報告。這種方法效率很高,可以應用於具有任意數量屬性的表。

以上是MySQL 可以在不使用外部腳本的情況下將長格式資料轉換為寬格式資料嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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