繁体   English   中英

如何过滤sqlite中的不一致记录

[英]How to filter inconsistent records in sqlite

假设我有包含以下记录的 SQLite 表:

记录ID 产品编号 产品名称
1 1 产品A
2 2 产品B
3 2 产品C
4 3 产品 D
5 3 产品 D

recID = 主键,自动递增。

如果我运行:

SELECT productID, productName 
FROM table 
GROUP BY productID, productName

结果是:

产品编号 产品名称
1 产品A
2 产品B
2 产品C
3 产品 D

如您所见, productID 2 的 productName 不一致: Product B and Product C 如何运行查询以检测不一致的查询? 例如,我希望结果是:

产品编号 产品名称
2 产品B
2 产品C

使用EXISTS获取具有超过 1 个productNameproductID

SELECT t1.productID, t1.productName 
FROM tablename t1
WHERE EXISTS (
  SELECT *
  FROM tablename t2
  WHERE t2.productID = t1.productID AND t2.productName <> t1.productName 
);

或者,对于小型数据集,在子查询中使用聚合来计算每个productID的不同productName数量,使用运算符IN

SELECT productID, productName 
FROM tablename
WHERE productID IN (
  SELECT productID
  FROM tablename
  GROUP BY productID
  HAVING COUNT(DISTINCT productName) > 1
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM