sql - 使用 CTE 删除 Greenplum 中的真实重复
问题描述
我正在尝试使用 CTE 删除真正的重复项,但出现以下错误。
ERROR: syntax error at or near "DELETE"
LINE 60: DELETE FROM CTE where row_num=2;
^
********** Error **********
ERROR: syntax error at or near "DELETE"
SQL state: 42601
Character: 1125
我的代码 -
WITH CTE AS (select ROW_NUMBER() OVER( PARTITION BY column1,
column2,
column3
ORDER BY column2 DESC, column3 asc ) AS row_num,
column1,
column2,
column3
column4
load_feed_num
from MT_TABLE_NAME
where column2='some value here')
DELETE FROM CTE where row_num=2;
如果我替换DELETE FROM CTE where row_num=2;
为SELECT * FROM CTE where row_num=2;
.
我立即得到结果。我错过了什么吗?
解决方案
它是一个选择查询,而不是您要从中删除的表。你可以做的是你可以有如下表名,以及一些与 CTE 匹配的同一个表的常见列
Delete from table where.... CTE...etc code
推荐阅读
- authentication - 带有 netcat 源的 Apache Flume 需要发送身份验证
- c# - 一个视图中的 MVC 枚举和模型 - 错误:“是一种类型,在给定的上下文中无效”
- reactjs - 单击当前组件以外的按钮时显示警告模式
- node.js - npm 脚本无法使用 node_modules.bin 目录中的可执行文件
- python - Selenium Python - 如何在动态网站中查找元素(获取 NoSuchElementException 异常)
- python - 如何更改数据框中的字符?
- c++ - 如果我已经在这个 C++ 片段中声明了大小并初始化了数组,那么这段代码是如何运行的?
- sql - PostgreSQL 上的查询无法正常工作
- css - 小屏幕上的 Bootstrap col 在 Safari 中具有巨大的差距
- c# - 像素颜色采集或设置不正确