close

昨天把VS2019裝好,SQL server安裝好,資料庫重新restore.......重新回到戰鬥駕駛艙.......準備開發我自己規劃的企業AI營運助理服務.....

之前做了一些前置學習,找到了C#如何執行Python的範例...........因為我去年學的機械學習和深度學習是用Python,但前端可以用Apach網頁程式或用Azure的Machine Learning平台,Google Cloud平台或AWS等雲端平台,仔細考慮了一下,打算先用單機版開發和展示之後,等生意上門再搬到雲端比較省錢,因此就打算用自己熟悉的Anaconda和Jupyter Notebook開發之後前端介面再整合到C#

 

今天早上在瀏覽資料字典時和做資料整理時,發現分析要先把一些資料做直列轉橫欄的處理,呵......以前這種對我來說用Decode或case函數就可以完成,但是太久沒寫了,但記得2008年前好像T-SQL有專門開發一個函式PIVOT,因此就爬文開始研究,

花了一個上午終於產出結果,好了,下一次等我的預測模型完成後再補上一些經驗分享......

1. T-SQL 直轉橫範例,記得要先把轉置的欄位值用Group by 篩選出

SELECT *
  FROM ( -- 原始資料的篩選

               select q.QINDEXNO,Q.QVERSION,Q.EXCELVERSION,Q.COSTSTAGE,Q.COSTELEMENT,Q.COSTVALUE

               from [PDVC].[dbo].[QTSQCOSTVALUE] q  

               where COSTSTAGE = 'FIN')t

               -- 轉置函數 
  PIVOT ( -- 被轉置為欄位的資料值 群組Value 

              Max(COSTVALUE)

                -- 原被轉置的欄位內容值,轉換為欄位
              for COSTELEMENT in ([Adj(Comm.)],[Belt],[CM],[CM Adjust(TR)],[CMQTY],[Comm 2.5%],[Comm 5.0%],[Commission],[Emb],[Fabric],[FOB價],[Freight],[GF],[IE],[Import Duty],[Misc],[Other],[Print],[Profit],[Profit(Cost)],[Rate (%)],[Test],[TOTQTY],[Trim],[Trim Fab],[Upcharge],[Wash],[管理服務費],[標準利潤率]
))P;      

2. 來一個進階的,如果同時要轉置多個欄位到橫欄時要怎麼處理呢?先Cross Apply 來UNPIVOT,再PIVOT

資料來源網址: http://adalf0722.blogspot.com/2013/08/pivot.html

 

arrow
arrow
    全站熱搜

    T.S.(黃增勳) 發表在 痞客邦 留言(0) 人氣()