【问题标题】:Get the latest version of every row in SQL获取 SQL 中每一行的最新版本
【发布时间】:2018-06-20 01:36:45
【问题描述】:

我需要获取每一行的最新版本以避免重复数据。 “_sdc_sequence”是复制期间附加到记录的unix epoch,并确定行的所有版本的顺序。 我想每天获取每个广告系列的费用和展示次数

我尝试使用 INNER JOIN,但无法获取数据。当我尝试使用“帐户”和“客户名称”作为属性时(每一行都有相同的客户名称和帐户),我在成本和展示次数上得到了 cero。也许属性是错误的

SELECT DISTINCT day, cost, impressions, campaign  
FROM `adxxxxx_xxxxxxxx` account 
INNER JOIN (
   SELECT
     MAX(_sdc_sequence) AS seq,
     campaignid
   FROM `adxxxxx_xxxxxxxx`
   GROUP BY campaignid) clientname 
ON account.campaignid = clientname.campaignid 
AND account._sdc_sequence = clientname.seq
ORDER by day 

还有其他方法可以做到这一点吗?或我该如何解决? 谢谢你

【问题讨论】:

  • 样本数据和期望的结果会有所帮助。甚至不清楚select 列的来源。

标签: sql google-bigquery inner-join


【解决方案1】:
#standardSQL
SELECT row.* FROM (
  SELECT ARRAY_AGG(t ORDER BY _sdc_sequence DESC LIMIT 1)[OFFSET(0)] row 
  FROM `adxxxxx_xxxxxxxx` t
  GROUP BY campaignid
)

【讨论】:

  • 我已经回答了您的问题 - There is another way to do this?。如果您有另一个 - 请作为新的发布,我(或其他人)将很乐意回答/帮助
猜你喜欢
  • 2019-06-25
  • 2018-07-03
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多