Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩充SQL查询以将id转换为人类可读的值_Sql_Google Bigquery - Fatal编程技术网

扩充SQL查询以将id转换为人类可读的值

扩充SQL查询以将id转换为人类可读的值,sql,google-bigquery,Sql,Google Bigquery,我是个SQL新手,所以请容忍我 我有一个数据转换和加载服务,每小时向GoogleBigQuery中的表发送嵌套的JSON数据。基于对谷歌网站和这个网站的研究,我构建了以下运行良好的查询。此查询确保视图仅包含基于_sdc_sequence字段和_sdc_batch_at字段的最新记录,因为我的数据服务仅使用基于密钥的增量复制每小时发送更改的数据: SELECT DISTINCT x.* FROM 'the_database.the_salesforce_table.Lead' x INNER JO

我是个SQL新手,所以请容忍我

我有一个数据转换和加载服务,每小时向GoogleBigQuery中的表发送嵌套的JSON数据。基于对谷歌网站和这个网站的研究,我构建了以下运行良好的查询。此查询确保视图仅包含基于_sdc_sequence字段和_sdc_batch_at字段的最新记录,因为我的数据服务仅使用基于密钥的增量复制每小时发送更改的数据:

SELECT DISTINCT x.*
FROM 'the_database.the_salesforce_table.Lead' x INNER JOIN
     ( SELECT id, MAX(_sdc_sequence) AS seq, MAX(_sdc_batched_at) AS batch 
       FROM 'the_database.the_salesforce_table.Lead'
       GROUP BY id
     ) xx
     ON x.id = xx.id AND x._sdc_sequence = xx.seq AND
        x._sdc_batched_at = xx.batch
我希望有人能帮助我修改这个查询,以帮助我理解如何聚合和包含来自另一个同级表的数据

在我的Lead表中有一个字段ConvertedAccounted。我希望引用account表,在该表上我可以匹配account表的id字段以返回相关的name字段,从而将ConvertedAccounted值转换为名称的相关人类可读值

****编辑**** 我在实际的表和字段上有点说错了,但概念是非常相同的。下面是一个粗略的表模式,显示了我希望如何通过Opportunity表上的accountid引用'id',从Account表中检索'name'


很抱歉,我延迟更新此内容-从手术中恢复

如果您基本上需要在另一个表中进行查找,您可以在查询中插入另一个联接,如下所示:

SELECT DISTINCT x.*, acc.name
FROM 'the_database.the_salesforce_table.Lead' x INNER JOIN
     ( SELECT id, MAX(_sdc_sequence) AS seq, MAX(_sdc_batched_at) AS batch 
       FROM 'the_database.the_salesforce_table.Lead'
       GROUP BY id
     ) xx
     ON x.id = xx.id AND x._sdc_sequence = xx.seq AND
        x._sdc_batched_at = xx.batch
LEFT JOIN <account_table> acc ON acc.id = x.convertedaccountid

请让我知道这是否有助于您

如果您提供样本数据和所需结果,那么将更容易提供帮助。如果您想要从表中获取最新记录,但这不是您在此处提出的问题,那么有更简单的方法可以从表中获取最新记录。您能提供表的架构吗?更新为“原始表架构”链接并进行澄清explanation@GordonLinoff-我已经上传了我的模式截图。很抱歉没有马上提供。如果有更简单的方法来构建我对最新独特项目的视图,我洗耳恭听。谢谢如果答案是有用的,考虑接受和投票。您可以通过单击✓ 然后点击▲此查询的我的版本在BigQuery中引发错误。重复的列名,因为我的源表和目标表都有相同的名称?从analytics.salesforce_Permanual.Opportunity x Internal JOIN SELECT id中选择不同的x.*,acc.name,最大sdc_顺序如下,从analytics.salesforce_Permanual.Opportunity GROUP以id xx在x.id=xx.id和x.上的最大值作为批次进行sdc_批处理,。_sdc_sequence=xx.seq和x._sdc_批处理,=xx.批左加入analytics.salesforce_Permanual.Account acc在acc.id=x.accountid限制10@DJMonzyk这意味着您有两个名为name的列。在这种情况下,尝试用acc.name帐户替换acc.name。\u namesomesome,@rmsteves,谢谢,效果很好!我缺乏SQL培训,无法知道我可以重命名输出列。非常感谢你的帮助,我在路上!伟大的如果它最终帮助你,考虑接受和投票: