• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    數據庫SQL如何使用透視表PIVOT,實現數據行轉列

    在excel中有透視表的功能,在數據庫中,也是有近似的語法的。好比,在供給商供貨的訂單表中,存儲的是行記實,怎么才能按照供給商,按照年份匯總訂單數目,而且實現行轉列呢?這個時辰就需要利用PIVOT函數了

    東西/原料

    • sqlserver

    方式/步調

    1. 1

      建立一個姑且表,用于演示sqlserver數據庫中,若何利用透視表PIVOT,實現行數據轉當作列數據

      IF OBJECT_ID('tempdb..#tblVendor') IS NOT NULL DROP TABLE #tblVendor; 

      CREATE TABLE #tblVendor(

          VendorName varchar(50),     -- 供給商名稱

          OrderNum int,                       -- 訂單數目

          OrderYear int                         -- 訂單年份   

      );

    2. 2

      往姑且表中插入幾行測試數據,模擬供給商供貨的訂單表

      insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供給商1', 1000, 2018);

      insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供給商1', 2000, 2017);

      insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供給商1', 3000, 2019);

      insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供給商2', 4000, 2019);

    3. 3

      查詢姑且表中的測試數據

      select * from #tblVendor;

    4. 4

      起首篩選“供給商1”的供貨數據,可以直接利用where前提過濾即可

      select * from #tblVendor where VendorName = '供給商1';

    5. 5

      篩選“供給商1”的供貨數據,按照年份排序,可以利用order by語句即可

      select * from #tblVendor where VendorName = '供給商1' order by OrderYear;

    6. 6

      按照供給商匯總訂單數目,就需要利用group by語句

      select VendorName, OrderNumTotal = sum(OrderNum) from #tblVendor group by VendorName;

    7. 7

      若是想要將行記實的供給商訂單數目,轉換為列數據,這個時辰就需要利用透視表PIVOT語法了

      select VendorName,[2017], [2018], [2019]

      from #tblVendor v

      pivot(

           sum(v.OrderNum) for v.OrderYear in([2017], [2018], [2019])

      )

      as result

    • 發表于 2019-05-28 22:02
    • 閱讀 ( 882 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆