T-SQL:透視數據(十三)

来源:https://www.cnblogs.com/yuanzijian-ruiec/archive/2018/08/12/9457366.html
-Advertisement-
Play Games

透視數據實際上就是行狀態轉為例狀態 先加一張測試表 把這張表查出來 我們將 custid行轉換成例 sql server 還支持一個子句用於 行轉列 PIVOT 是以FROM內嵌 表表達式實現的 PIVOT (數據行) for 要轉的列 IN (轉那幾個數據) ...


透視數據實際上就是行狀態轉為例狀態

先加一張測試表

IF OBJECT_ID('dbo.Orders', 'U') IS NOT NULL DROP TABLE dbo.Orders;
GO

CREATE TABLE dbo.Orders
(
  orderid   INT        NOT NULL,
  orderdate DATE       NOT NULL,
  empid     INT        NOT NULL,
  custid    VARCHAR(5) NOT NULL,
  qty       INT        NOT NULL,
  CONSTRAINT PK_Orders PRIMARY KEY(orderid)
);

INSERT INTO dbo.Orders(orderid, orderdate, empid, custid, qty)
VALUES
  (30001, '20070802', 3, 'A', 10),
  (10001, '20071224', 2, 'A', 12),
  (10005, '20071224', 1, 'B', 20),
  (40001, '20080109', 2, 'A', 40),
  (10006, '20080118', 1, 'C', 14),
  (20001, '20080212', 2, 'B', 12),
  (40005, '20090212', 3, 'A', 10),
  (20002, '20090216', 1, 'C', 20),
  (30003, '20090418', 2, 'B', 15),
  (30004, '20070418', 3, 'C', 22),
  (30007, '20090907', 3, 'D', 30);

SELECT * FROM dbo.Orders;

把這張表查出來

SELECT empid, custid, SUM(qty) AS sumqty
FROM dbo.Orders
GROUP BY empid, custid;

我們將 custid行轉換成例 

SELECT empid,
SUM(CASE WHEN custid = 'A' THEN qty END) AS A,
SUM(CASE WHEN custid = 'B' THEN qty END) AS B,
SUM(CASE WHEN custid = 'C' THEN qty END) AS C,
SUM(CASE WHEN custid = 'D' THEN qty END) AS D 
FROM dbo.Orders
GROUP BY empid;

sql server 還支持一個子句用於 行轉列 PIVOT  是以FROM內嵌 表表達式實現的

SELECT empid, A, B, C, D
FROM (SELECT empid, custid, qty
      FROM dbo.Orders) AS D
  PIVOT(SUM(qty) FOR custid IN(A, B, C, D)) AS P;

PIVOT  (數據行)  for  要轉的列  IN (轉那幾個數據)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 占座 ...
  • 一、VM安裝(這個大家去百度吧....) 二、centos安裝 版本:centos7 ’https://jingyan.baidu.com/article/a3aad71aa180e7b1fa009676.html(具體可以看這個) 1、安裝好之後,始終用自己的用戶名操作(這個很重要,因為如果在不同 ...
  • mysql在之前寫過一次,那時是我剛剛進入博客,今天介紹一下mysql的python交互,當然前面會把mysql基本概述一下。 一、命令腳本 1、基本命令 (1)啟動服務 以管理員身份運行cmd net start 服務名稱 以管理員身份運行cmd net start 服務名稱 (2)停止服務 以管 ...
  • Solr是Apache軟體基金組織旗下的一個頂級開源項目, 是**基於Lucene的全文搜索服務**, 是一個獨立的企業級搜索應用伺服器, 可以獨立運行於Jetty, Tomcat等Web容器中. 使用Solr可以很方便地實現全文索引和搜索等一系列功能. ...
  • 1. sqlplus / as sysdba 操作系統認證,sys管理員登錄,/後面要有空格。 2. sqlplus "/ as sysdba" 操作系統認證,sys管理員登錄,/後面有無空格都可,為方便記憶,本文統一為有空格。 3. sqlplus username/pwd@TNSNAME(hos ...
  • 一、前言 在一次對比oracle和greenplum查詢性能過程中,由於greenplum查詢性能不理想,因此進行定位分析,提升greenplum的查詢性能 二、環境信息 初始情況下,搭建一個小的集群,進行性能測試 PS:由於要求greenplum中的表數據類型和源表類型一直,且索引一致。所以所有字 ...
  • 本地安裝及網頁測試 下載地址 : https://www.mongodb.com/download-center#community 可以在MongoDB官網選擇Community Server版本下載,但是它似乎經常沒有響應。可以在這裡直接選擇需要的版本下載,要在Windows下安裝可以直接選ms ...
  • 1、思維模式轉變的催化劑是大量新技術的誕生,它們能夠處理大數據分析所帶來的3個V的挑戰。扎根於開源社區,Hadoop已經是目前大數據平臺中應用率最高的技術,特別是針對諸如文本、社交媒體訂閱以及視頻等非結構化數據。 2、除分散式文件系統之外,伴隨Hadoop一同出現的還有進行大數據集處理MapRedu ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...