相关疑难解决方法(0)

BigQuery - 从分区表中删除行

我在BigQuery上有一个Day-Partitioned Table.当我尝试使用如下查询从表中删除一些行时:

DELETE FROM `MY_DATASET.partitioned_table` WHERE id = 2374180
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:分区表尚不支持DML语句.

通过Google快速搜索,我可以访问:https://cloud.google.com/bigquery/docs/loading-data-sql-dml,其中还说:"尚不支持修改分区表的DML语句."

那么现在,我们可以使用一种解决方法来删除分区表中的行吗?

google-bigquery

6
推荐指数
1
解决办法
3360
查看次数

BigQuery - DELETE语句删除重复项

SQL上有很多很棒的帖子可以选择唯一的行并写入(截断)表格,以便删除dus.例如

WITH ev AS (
  SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY id ORDER BY loadTime DESC) AS rowNum
  FROM `duplicates`
 )
SELECT
  * EXCEPT(rowNum)
FROM
  ev
WHERE rowNum = 1
Run Code Online (Sandbox Code Playgroud)

我试图使用DML和DELETE稍微改变一下(例如,如果你不想使用BQ savedQuery,只需执行SQL).我想做的大致是:

WITH dup_events AS (
  SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY loadTime DESC) AS rowNum
      FROM `duplicates`
 )
DELETE FROM
  dup_events
WHERE rowNum > 1
Run Code Online (Sandbox Code Playgroud)

但在控制台中出现此错误:

Syntax error: Expected "(" or keyword SELECT but got keyword DELETE at [10:1]
Run Code Online (Sandbox Code Playgroud)

可以使用DELETE实现(standardSQL)吗?

谢谢!

google-bigquery

5
推荐指数
3
解决办法
5624
查看次数

标签 统计

google-bigquery ×2