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;
我需要在我的数据集 (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;