仅返回BigQuery表中包含重复项的最新行

Kev*_*ore 6 google-bigquery

我有一个包含许多重复项的表 - 许多行具有相同的id,可能唯一的区别是requested_at列.

我想select *从表中做一个,但只返回一行id- 最近请求的行.

我已经研究过,group by id但后来我需要为每一列做一个聚合.这是容易requested_atmax(requested_at) as requested_at-其他的都很难.

我如何确保获得与title最近更新的行对应的等值?

小智 9

我建议一个类似的形式,避免窗口函数中的排序:

SELECT *
    FROM (
      SELECT
          *,
          MAX(<timestamp_column>)
              OVER (PARTITION BY <id_column>)
              AS max_timestamp,
      FROM <table>
    )
    WHERE <timestamp_column> = max_timestamp
Run Code Online (Sandbox Code Playgroud)