sql聚合添加带有标志的新列

a14dhokn  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(334)

我有一个专栏

Country
-------
Canada
India
USA
India
China
Canada

我想通过插入另一个名为m\u的列来更新此表,该列只能有0或1
如果国家出现多次=1如果国家只出现一次=0

output
-------
Canada 1
India 1
USA 0
India 1
China 0
Canada 1
hsgswve4

hsgswve41#

您应该为此使用windows函数:

select t.*, 
       (case when count(*) over (partition by country) > 1 then 1 else 0 end) as flag
from t;

这是一匹没有名字回答的马。如果那个答案没有删除,我就删除它。

hrysbysz

hrysbysz2#

这应该适合您:

select a.country, case when b.c >1 then 1 else 0 end  
from countries a
join (
      select Country, count(*) as c from countries group by Country
) b on b.country = a.country

相关问题