我需要在我的数据集(duplicate_name)中创建一个新列,如果有多个记录,则包含TRUE,否则为FALSE。我发现了这个代码(我正在使用sqlite):SELECT *,情况下当行号()除以(分区)First_name, last_name)>1)那么"真"其他的"假"END AS duplicate_name从用户;
但是当我运行它时,它给了我这样的东西(只有第二个记录被标记为TRUE):卡洛·托马斯男假卡洛·托马斯男Don葱男假塔尼亚·洛佩斯女假
我需要的是这样一个表(具有相同名称的两个记录被标记为TRUE):卡洛·托马斯男卡洛·托马斯男Don葱男假塔尼亚·洛佩斯女假
有人能帮帮我吗?
感谢用COUNT(*)
窗函数代替ROW_NUMBER()
SELECT *,
CASE WHEN COUNT(*) OVER (PARTITION BY first_name, last_name) > 1 THEN 'TRUE' ELSE 'FALSE' END AS duplicate_name
FROM users;
或更简单,1表示真,0表示假:
SELECT *,
COUNT(*) OVER (PARTITION BY first_name, last_name) > 1 AS duplicate_name
FROM users;