Google bigquery 应该是1——尽管你可能认为这对你的问题不重要——但重要的是——要把所有的问题都清晰明了地呈现出来o) 因此,我们可以有效地帮助如何反向旋转此轴,以便实现所需的输出。-您可以通过在此处显示预期输出的示例来可视化此结果!是的…这是第三个代码块。我现在明白了-m

Google bigquery 应该是1——尽管你可能认为这对你的问题不重要——但重要的是——要把所有的问题都清晰明了地呈现出来o) 因此,我们可以有效地帮助如何反向旋转此轴,以便实现所需的输出。-您可以通过在此处显示预期输出的示例来可视化此结果!是的…这是第三个代码块。我现在明白了-m,google-bigquery,Google Bigquery,应该是1——尽管你可能认为这对你的问题不重要——但重要的是——要把所有的问题都清晰明了地呈现出来o) 因此,我们可以有效地帮助如何反向旋转此轴,以便实现所需的输出。-您可以通过在此处显示预期输出的示例来可视化此结果!是的…这是第三个代码块。我现在明白了-mecan不清楚您如何计算错误-根据您的示例,我会说col1有1个错误,col2有1个错误,但在最终输出中,两个都显示为0?这意味着根据您预期输出(块3)中的示例(块2)cnt_col1的计数应为1,cnt_col2的计数应为1-尽管您可能认为这


应该是1——尽管你可能认为这对你的问题不重要——但重要的是——要把所有的问题都清晰明了地呈现出来o) 因此,我们可以有效地帮助
如何反向旋转此轴,以便实现所需的输出。
-您可以通过在此处显示预期输出的示例来可视化此结果!是的…这是第三个代码块。我现在明白了-mecan不清楚您如何计算错误-根据您的示例,我会说col1有1个错误,col2有1个错误,但在最终输出中,两个都显示为0?这意味着根据您预期输出(块3)中的示例(块2)cnt_col1的计数应为1,cnt_col2的计数应为1-尽管您可能认为这对您的问题不重要-但-重要的是-呈现所有清晰和干净的内容:o) 所以我们可以有效的帮助我很高兴它帮助了我!爱BigQuery,也爱它,因为它提供了传递/分享知识和帮助他人的机会:o)我很高兴它有帮助!热爱BigQuery,也热爱它,因为它提供了传递/分享知识和帮助他人的机会:o)Sourygna,这是一个非常出色的策略,我想看看当您使用python代码时,您是如何实现这一点的。然而,我的人说,我必须识别那些不匹配的列,以确定我们是否有转换失败。对于行检查,这听起来很强。谢谢你的建议。是的,第三点的想法是能够看到不匹配的行和列。为了减少中间结果(校验和)的数量,我划分为“列桶”。这也意味着,当我在第4点中显示差异时,我将能够向最终用户仅显示一些失败的列组(一个组将由大约5列组成)。让我们看看我是否能在接下来的几天内很快完成,以及我是否能向您展示一些结果。这是我之前提到的Python脚本项目:Sourygna,这是一个出色的策略,我想看看当您使用Python代码时,您是如何取得成果的。然而,我的人说,我必须识别那些不匹配的列,以确定我们是否有转换失败。对于行检查,这听起来很强。谢谢你的建议。是的,第三点的想法是能够看到不匹配的行和列。为了减少中间结果(校验和)的数量,我划分为“列桶”。这也意味着,当我在第4点中显示差异时,我将能够向最终用户仅显示一些失败的列组(一个组将由大约5列组成)。让我们看看我是否能在接下来的几天内完成,以及我是否能向您展示一些结果。下面是我前面提到的Python脚本项目:
select 
count(case when coalesce(x.col1,1) = coalesce(y.col1,1) then null else 1 end) as cnt_col1,
count(case when coalesce(x.col2,"1") = coalesce(y.col2,"1") then null else 1 end) as cnt_col2
from
`DatasetA.Table` x
OUTER JOIN
`DatasetB.Table` y
on x.col1 = y.col1
col1, col2
null, null
null, null
1, null
null, 1
COLUMN, COUNT_OF_ERRORS
cnt_col1, 1
cnt_col2, 1
...
cnt_col15, 0
col1    col2    col3
----    ----    ----     
null    null    null     
null    null    1    
null    1       1    
1       null    1    
1       null    1    
1       null    1   
column      count_of_errors  
--------    ---------------
cnt_col1    3    
cnt_col2    1    
cnt_col3    5    
with one_string as(
select concat( sessionid ,'|',referrercode ,'|',purchaseid ,'|',customerid ,'|', cast(bouncerateind as string),'|', cast( productpagevisit as string),'|', cast( itemordervalue as string),'|', cast( purchaseinsession as string),'|', cast( hit_time_gmt as string),'|',datedir ,'|',productcategory ,'|',post_cookies) as bigstring from bidwh2.omniture_2017_03_24_v2
),
shas as(
   select TO_BASE64( sha1( bigstring)) as sha from one_string
),
shas_prefix as(
   select substr( sha, 0 , 1) as prefix, sha from shas
),
shas_ordered as(
    select prefix, sha from shas_prefix order by sha
 ),
results_prefix as(
    select concat( prefix, ' ', TO_BASE64( sha1( STRING_AGG( sha, '|')))) as res from shas_ordered group by prefix
),
results_ordered as(
    select 1 as myall, res from results_prefix order by res
)
select SHA1( STRING_AGG( res, '|')) as sha from results_ordered group by myall;