狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

SQL如何實現數據表行轉列、列轉行?

admin
2024年2月19日 16:7 本文熱度 580

SQL行轉列、列轉行可以幫助我們更方便地處理數據,生成需要的報表和結果集。本文將介紹在SQL中如何實現數據表地行轉列、列轉行操作,以及實際應用示例。

這里通過表下面三張表進行舉例,建表語句和示例數據插入語句可以查看我之前的文章。

SQL創建數據庫和數據表

數據分析師的日常,公眾號:數據分析師的日常SQL創建數據庫和數據表

數據表示例數據分別如下:

data_learning.product_order(商品銷量表):

data_learning.product(商品信息表):    

data_learning.product_category(商品二級分類信息表):

01

行轉列

1.1 使用CASE WHEN語句+聚合函數  

問題:請查詢女裙和兒童家具的銷量,輸出結果形式為女裙銷量作為一列,兒童家具作為一列。

SQL:

SELECT SUM(CASE WHEN c.category_name = '女裙' THEN a.sales_volume ELSE 0 END) AS 女裙銷量, SUM(CASE WHEN c.category_name = '兒童家具' THEN a.sales_volume ELSE 0 END) AS 兒童家具銷量 FROM data_learning.product_order a LEFT JOIN (SELECT * FROM data_learning.product_category) c on a.category_id = c.category_id;

果如下:

1.2 使用if函數+聚合函數  

同樣是上面那個問題,用第二種方式如何實現呢?

SQL:

SELECT SUM(IF(c.category_name = '女裙',sales_volume,0 )) AS 女裙銷量, SUM(IF(c.category_name = '兒童家具',sales_volume,0)) AS 兒童家具銷量 FROM data_learning.product_order a LEFT JOIN (SELECT * FROM data_learning.product_category) c on a.category_id = c.category_id;

結果如下

在實際工作中,使用場景可能比這個復雜。

比如“請查詢每個月女裙和兒童家具地銷量,輸出結果形式為女裙銷量作為一列,兒童家具作為一列”。這個時候,可以結合GROUP BY語句去實現。

同時,聚合函數可能也不一定是SUM,有可能是MAX,這個都要根據具體的業務定義,數據表內容等去靈活運用

02

列轉行

2.1 使用 UNION ALL或UNION語句  

我們將上面行轉列的數據結果插入到一張臨時表data_learning.tmp_test,然后用這個把這個表的結果做列轉行操作,也就是女裙和兒童家具變成行。

step1 : 上面的查詢結果存入臨時表。(實際工作中不用,這里僅僅是想用上面的數據另建一張表作為操作示例)    

CREATE TABLE data_learning.tmp_test AS SELECT SUM(IF(c.category_name = '女裙',sales_volume,0 )) AS 女裙銷量, SUM(IF(c.category_name = '兒童家具',sales_volume,0)) AS 兒童家具銷量 FROM data_learning.product_order a LEFT JOIN (SELECT * FROM data_learning.product_category) c on a.category_id = c.category_id;

step2:做列轉行操作

SELECT '女裙' AS 類別, 女裙銷量 AS 銷量 FROM data_learning.tmp_test UNION ALL SELECT '兒童家具' AS 類別, 兒童家具銷量 AS 銷量 FROM data_learning.tmp_test;

結果如下

行轉列與列轉行是SQL中非常重要的數據轉換技巧。通過掌握這些技巧,你可以更加靈活地處理和分析數據,提高數據處理效率。希望本文能對你有所幫助!


該文章在 2024/2/19 16:07:21 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved