我正在对我的数据仓库进行合并更新。我不需要保留该特定对象的历史记录,因此我使用的是我在慢慢改变尺寸的类型。我正在使用OUTPUT $action
,所以我可以跟踪每天发生了多少次更新和插入。
我的目标是跳过日志更新步骤,其中更新了特定的列(特别是年龄),因为我希望每个有生日的人都可以更改年龄(我不能包括生日)以保护隐私)。不希望在日志中统计这些更新。
到目前为止,我的日志记录是:
OUTPUT $action,
CASE $action
WHEN 'UPDATE' THEN 'Found matching key: updated existing record'
WHEN 'INSERT' THEN 'No matching key: inserted new record'
END
INTO @SummaryOfChanges(Change, Reason)
我想添加逻辑说明列age
是否已更新,然后跳过日志记录步骤。
与$action
的插入和删除部分不同,我看不到一种回调有关更新行的信息的方法。我在CASE
步骤中尝试了多种OUTPUT
语句,但是不了解如何检查age
是否是行合并期间更新的列之一。我似乎无法检查age
子句中的源OUTPUT
和目标process_dframe <- function(){
col1 = c(1, 2, 3)
col2 = c(5, 6, 6)
new_value = c(0, 0, 0)
dframe <- data.frame(col1, col2, new_value)
print(dframe)
new_val_col_sum <- 0
col1_increment <- 5
size <- length(dframe$col1)
print(size)
while(new_val_col_sum < 5) {
if(new_val_col_sum > 0) {
dframe$col1[min_row] <- sum(dframe$col1[min_row], col1_increment)
}
min_sum <- as.integer(.Machine$integer.max)
min_row <- 0
for(i in 1:size) {
crnt_sum <- sum(dframe$col1[i], dframe$col2[i])
if(crnt_sum < min_sum) {
min_sum <- crnt_sum
min_row <- i
}
}
dframe$new_value[min_row] <- sum(dframe$new_value[min_row], 1)
new_val_col_sum <- sum(new_val_col_sum, 1)
}
return(dframe)
}
d <- process_dframe()
print(d)
是否匹配。
对此有什么想法吗?谢谢!