「資料清理」修訂間的差異

出自ProgWiki
跳至導覽 跳至搜尋
→‎作法
(added Category:資料 using HotCat
 
(未顯示同一使用者於中間所作的 2 次修訂)
行 1: 行 1:
 +
'''資料清理''',或稱'''資料淨化''',{{wikipedia|Data_cleansing|lang=en}}
 
==用途==
 
==用途==
 
* 將跨Table或是樹狀或網狀Table的資料,根據資料的特性,清理成一個或數個,簡化過的Table。這樣在使用時(如List列表)的效能會快很多。
 
* 將跨Table或是樹狀或網狀Table的資料,根據資料的特性,清理成一個或數個,簡化過的Table。這樣在使用時(如List列表)的效能會快很多。
行 14: 行 15:
 
2.先Select出必要的PK與FK欄位Insert到【目標的Table】
 
2.先Select出必要的PK與FK欄位Insert到【目標的Table】
 
<source lang="tsql">
 
<source lang="tsql">
INSERT INTO Table1 (ID, col2) SELECT (ID, col2) from Table2;
+
INSERT INTO Table1 (ID, col2)  
 +
SELECT (ID, col2)  
 +
from Table2;
 
</source>
 
</source>
 
3.依序以Update方式,將整理好的資料Update到【目標的Table】
 
3.依序以Update方式,將整理好的資料Update到【目標的Table】
 
<source lang="tsql">
 
<source lang="tsql">
 
update Table1
 
update Table1
set col3=sum(b.SubTotal)
+
set col3=sum(coalesce(b.SubTotal,0))
 
from  Table1 as a, Table3 as b
 
from  Table1 as a, Table3 as b
 
         where a.ID=b.ID;
 
         where a.ID=b.ID;
  
 
update Table1
 
update Table1
         set col4=max(b.SubTotal)
+
         set col4=max(coalesce(b.SubTotal,0))
from  Table1 as a, Table3 as b
+
from  Table1 as a
        where a.ID=b.ID;
+
left join Table3 as b on a.ID=b.ID;
 
</source>
 
</source>
  
 
[[Category:SQL]]
 
[[Category:SQL]]
 +
[[分類:資料]]

於 2021年11月14日 (日) 13:19 的最新修訂

資料清理,或稱資料淨化,參照:『維基百科~Data_cleansing

用途

  • 將跨Table或是樹狀或網狀Table的資料,根據資料的特性,清理成一個或數個,簡化過的Table。這樣在使用時(如List列表)的效能會快很多。

作法

1.先建立【目標的Table】

CREATE TABLE [dbo].[Table1](
	[ID] [varchar](12) ,
	[col2] [varchar](12) ,
	[col3] [int] NULL,
	[col4] [int] NULL
) ON [PRIMARY];

2.先Select出必要的PK與FK欄位Insert到【目標的Table】

INSERT INTO Table1 (ID, col2) 
	SELECT (ID, col2) 
	from Table2;

3.依序以Update方式,將整理好的資料Update到【目標的Table】

update Table1
	set col3=sum(coalesce(b.SubTotal,0))
	from  Table1 as a, Table3 as b
        where a.ID=b.ID;
 
update Table1
        set col4=max(coalesce(b.SubTotal,0))
	from  Table1 as a
	left join Table3 as b on a.ID=b.ID;