首页 > 解决方案 > BigQuery SQL 错误:在 [9:15] 内未找到最新的名称排名

问题描述

我正在使用从文档中粘贴的查询来删除 BigQuery 数据集的重复数据。当我使用查询时,我收到一个错误:

最晚在 [9:15] 内未找到姓名排名

我就是不明白为什么。注意:我是 SQL 新手。有问题的查询如下:

SELECT *
  FROM (
        SELECT *,
        RANK () OVER (PARTITION BY gregoriandate 
                     ORDER BY _sdc_report_datetime DESC)
        FROM hf_bing.campaign_performance_report
        ORDER BY gregoriandate ASC
       ) AS latest
 where latest.rank = 1

标签: sqlgoogle-bigquerysubquery

解决方案


也许这已经为您解决了:

SELECT 
  *
FROM (
  SELECT
    *,
    RANK () OVER (PARTITION BY gregoriandate ORDER BY _sdc_report_datetime DESC) AS rank_
  FROM hf_bing.campaign_performance_report
 )
 WHERE rank_ = 1

当您使用WHERE latest.rank = 1时,实际上没有命名rank的字段latest会导致您收到错误。我基本上使用了该字段的别名,所以现在 BigQuery 可以准确地知道引用了哪个字段。


推荐阅读