[英]How can I filter records in an SQLite database against a DateTime value that was not supplied?
[英]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 个productName
的productID
:
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.