以下是我的数据的快照
NameAgeIncome Group
Asd 20 A
Asd 20 A
b 19 E
c 21 B
c 21 B
c 21 B
df 21 C
rd 24 D
我想要包含一个标志变量,其中它表示重复行中的1到1,而另一行表示0。并且0到其余的不重复的行。下面给出了最终期望输出的快照
NameAgeIncome Group Flag
Asd 20 A 1
Asd 20 A 0
b 19 E 0
c 21 B 1
c 21 B 1
c 21 B 0
df 21 C 0
rd 24 D 0
任何人都可以帮助我如何在Oracle数据库中创建这个Flag变量
答案 0 :(得分:2)
您可以使用分析函数和case
:
select t.*,
(case when row_number() over (partition by name, age, income order by name) = 1
then 0 else 1
end) as GroupFlag
from table t;