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

发布于 2025-02-04 17:51:12 字数 1110 浏览 3 评论 0原文

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

recidProduciDProductName
11产品A
22产品B
32产品C
43产品D
53产品D

RECID =主键,自动增量。

如果我运行:

SELECT productID, productName 
FROM table 
GROUP BY productID, productName

结果是:

ProductIDProductName
1产品A
2产品B
2产品C
3产品D

如您所见,ProductID 2具有不一致的productName:产品B和产品C。如何运行查询只是为了检测不一致的查询?例如,我希望结果是:

productidproductname
2product b
2产品c

Say I have SQLite table with the following records:

recIDproductIDproductName
11Product A
22Product B
32Product C
43Product D
53Product D

recID = primary key, auto increment.

If I run:

SELECT productID, productName 
FROM table 
GROUP BY productID, productName

Result is:

productIDproductName
1Product A
2Product B
2Product C
3Product D

As you can see, productID 2 has inconsistent productName: Product B and Product C. How do I run query just to detect the inconsistent ones? Eg I want the result to be:

productIDproductName
2Product B
2Product C

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜未央樱花落 2025-02-11 17:51:12

使用存在,以超过1 product> product> productiD product> productname s:

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

或,对于一个小数据集productname s productid 的,中的操作员:

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

Use EXISTS to get a productID with more than 1 productNames:

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

Or, for a small dataset use aggregation in a subquery which counts the distinct number of productNames of each productID, with the operator IN:

SELECT productID, productName 
FROM tablename
WHERE productID IN (
  SELECT productID
  FROM tablename
  GROUP BY productID
  HAVING COUNT(DISTINCT productName) > 1
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文