sqlite 用 true 或 false 标记重复项

sqlite mark duplicates with true or false

我需要在我的数据集 (duplicate_name) 中创建一个新列,如果某人有多个记录则包含 TRUE,否则包含 FALSE。我找到了这段代码(我正在使用 sqlite): SELECT *, 案件 当 ROW NUMBER() OVER (PARTITION BY first_name, last_name) > 1) 然后 'TRUE' 其他 'FALSE' 结束为 duplicate_name 来自用户;

但是当我 运行 它给了我这样的东西(只有第二条记录被标记为真实): Carlo Thomas 男 FALSE Carlo Thomas 男 TRUE 唐葱雄 FALSE Tania Lopes 女 FALSE

我需要的是这样的table(同名的两条记录都标记为TRUE): Carlo Thomas 男 TRUE Carlo Thomas 男 TRUE 唐葱雄 FALSE Tania Lopes 女 FALSE

有人能帮帮我吗

谢谢

而不是 ROW_NUMBER() 使用 COUNT(*) window 函数:

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;