You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite查询:筛选单列重复且排除关联列完全重复的值

SQLite:筛选重复checksum并排除单一file重复记录

需求说明

筛选checksum列存在重复的值,但需排除那些仅对应同一个file重复录入的情况——也就是该checksum的所有关联记录都属于同一个file,只是该file被多次插入。

根据给定示例数据,最终需要得到的checksum为:1、3、4。

原查询问题

你当前的查询错误地排除了所有出现多次的file,导致checksum=3中的file5、checksum=4中的file7/8都被过滤,剩余记录无法满足count(checksum) > 1的条件,因此无法命中目标值。

正确解决方案

方案1:分组统计不同file数量(高效简洁)

利用COUNT(DISTINCT file)直接统计每个checksum对应的不同file数量,只要数量≥2,就说明该checksum对应多个不同file,符合要求:

SELECT checksum
FROM t1
GROUP BY checksum
HAVING COUNT(DISTINCT file) >= 2;

方案2:EXISTS子查询(适用于复杂扩展场景)

通过子查询验证每个checksum是否存在至少一个不同的关联file:

SELECT DISTINCT checksum
FROM t1 t_main
WHERE EXISTS (
    SELECT 1
    FROM t1 t_sub
    WHERE t_sub.checksum = t_main.checksum
      AND t_sub.file != t_main.file
);

结果验证

执行上述任一语句,都会返回预期的1、3、4三个checksum值。


内容的提问来源于stack exchange,提问作者frenzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:29:59