use*_*910 3 sql postgresql window-functions amazon-redshift
我在 Redshift 中有一个表,其中包含我想要删除的重复行,
为此,我创建了归档 ID,我想更新他以删除重复的行,我正在尝试运行此查询,但它不起作用
update mr_usage
set id=row_number () over (partition by uid,date(ts),title order by ts)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:无法在更新中使用窗口函数
我正在寻找一种更新该字段的方法
另一种可能的解决方案(没有 CTE)是UPDATE .. FROM直接使用带有子查询的语法
UPDATE mr_usage outer
SET id = sub.new_id
FROM (
SELECT
id, ROW_NUMBER() OVER (PARTITION BY uid, date(ts), title ORDER BY ts) AS new_id
FROM
mr_usage
) sub
WHERE outer.id = sub.id
Run Code Online (Sandbox Code Playgroud)
但从 PostgreSQL 8.4 开始它也可用。
| 归档时间: |
|
| 查看次数: |
7317 次 |
| 最近记录: |