「資料清理」修訂間的差異
跳至導覽
跳至搜尋
小 (→作法) |
小 (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 | + | from Table1 as a |
− | + | 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;