mysql - 在 BigQuery 中使用 `With` 然后 `Delete`
问题描述
使用 BigQuery 我想删除具有 idCommon Table Expression
或with
所以这是我的查询:
WITH
redundant AS (
SELECT
id,
MAX(updated_at) AS updated_at,
COUNT(*) AS counter
FROM
t1
GROUP BY
id
HAVING
counter >= 2)
DELETE
FROM
t1
WHERE
id IN (redundant.id)
AND updated_at NOT IN (redundant.updated_at )
我预计这些行将被删除,但我收到此错误消息:
Syntax error: Expected "(" or keyword SELECT but got keyword DELETE at [13:1]
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
DELETE FROM `project.dataset.table` d
WHERE EXISTS (
WITH redundant AS (
SELECT id,
MAX(updated_at) AS updated_at,
COUNT(*) AS counter
FROM `project.dataset.table`
GROUP BY id
HAVING counter > 2
)
SELECT 1 FROM redundant
WHERE d.id = id AND d.updated_at != updated_at
)
推荐阅读
- php - 未定义的属性:Illuminate\Database\Query\Builder::$sessionId
- apache - htaccess 更改 URL 而不显示在浏览器地址栏中
- webrtc - CentOS7安装janus-gateway报错
- c++ - 使用函数指针作为成员函数的代理
- node.js - 使用带有 tv4 的 patternProprties 进行 json 模式验证
- laravel - 在 laravel 网站中显示图像的问题
- javascript - 根据有效电子邮件删除提交按钮类别
- .net - 无法将 Windows 窗体与 Windows 10 中显示的左边缘对齐
- php - 此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST Laravel 6
- powerbi - 无法运行 PowerBi 视觉对象