gpt4 book ai didi

sql - 查找重复行并将第一行标记为 1,其余重复行标记为 0

转载 作者:行者123 更新时间:2023-12-04 22:32:39 28 4
gpt4 key购买 nike

我的表格中有以下数据,

COL1  COL2

A X
A Y
A Z
B W
B W
C L
C L

我想使用附加标志获取上述数据,例如,唯一列值的标志应为 1,重复的第一次出现应为 1,其余重复行为 0,预期输出:

COL1  COL2   FLAG  
A X 1
A Y 1
A Z 1
B W 1 -- First occurance
B W 0 -- Second occurance
C L 1 -- First occurance
C L 0 -- Second occurance

我知道 row_number() over(partition by COL1,COL2) 将返回如下计数,

COL1   COL2   FLAG  
A X 1
A Y 1
A Z 1
B W 2
B W 2
C L 3
C L 3

但这不是我想要的。相同列值的第二次出现应标记为 0

提前致谢!

最佳答案

你可以试试这个查询。

使用 CASE WHEN 表达式检查 rn 是否大于 1

SELECT t.COL1,t.COL2,CASE WHEN rn = 1 THEN 1 ELSE 0 END "FLAG"
FROM (
SELECT *,row_number() over(partition by COL1,COL2 ORDER BY COL1) rn
FROM T
) as t

结果

enter image description here

Sqlfiddle

关于sql - 查找重复行并将第一行标记为 1,其余重复行标记为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50123939/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com