我需要将具有唯一整数/散列的列添加到表中以用作行 ID。
我用这个查询创建了一个表 DUPLICATES:
CREATE TABLE duplicates AS
SELECT
"a", "b", COUNT(*) as _count
FROM
"table"
GROUP BY
"a", "b"
HAVING
_count > 1
ORDER BY
_count desc
现在我需要为每一行添加一个包含唯一 ID 的列。我试过 ALTER TABLE DUPLICATES ADD 'id' int identity(1,1)
,但是这会返回:SQL 编译错误:无法将具有非常量默认值的列 'id' 添加到非空表 'DUPLICATES'。我现在有点缺乏想法,因为关于 Snowflake SQL 的讨论还不广泛,而且 Snowflake 的帮助页面也没有帮助我。
最佳答案
一种简单的方法是使用 row_number()
:
CREATE TABLE duplicates AS
SELECT ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as id,
"a", "b", COUNT(*) as _count
FROM "table"
GROUP BY "a", "b"
HAVING _count > 1
ORDER BY _count desc;
关于sql - 将行 ID 添加到 Snowflake SQL 中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010378/