在 table 和 sql 命令中只有 return 个奇数记录
only return records with odd count in a table with sql command
我的 Access 数据库中有一个仓库 table,如下所示:
product_id
10
20
20
30
30
30
40
40
40
40
现在我需要 SQL 查询 return 10, 30
product_id
个在 table 中有奇数个数。
SELECT product_id, Count(product_id) AS cnt
FROM warehouse
GROUP BY product_id;
此查询 return 是每个值的计数,但我如何将其编辑为只有 return 行奇数 cnt
?
您可以将 having
子句与 mod
运算符一起使用:
SELECT product_id, COUNT(product_id) AS cnt
FROM warehouse
GROUP BY product_id
HAVING COUNT(product_id) MOD 2 = 1;
SELECT *
FROM (SELECT product.id, count(product.id) AS cnt FROM warehouse GROUP BY product.id)
WHERE (cnt - (Round(cnt/2.0))*2) <> 0;
这是我的解决方案,还有更好的方法吗?
我的 Access 数据库中有一个仓库 table,如下所示:
product_id
10
20
20
30
30
30
40
40
40
40
现在我需要 SQL 查询 return 10, 30
product_id
个在 table 中有奇数个数。
SELECT product_id, Count(product_id) AS cnt
FROM warehouse
GROUP BY product_id;
此查询 return 是每个值的计数,但我如何将其编辑为只有 return 行奇数 cnt
?
您可以将 having
子句与 mod
运算符一起使用:
SELECT product_id, COUNT(product_id) AS cnt
FROM warehouse
GROUP BY product_id
HAVING COUNT(product_id) MOD 2 = 1;
SELECT *
FROM (SELECT product.id, count(product.id) AS cnt FROM warehouse GROUP BY product.id)
WHERE (cnt - (Round(cnt/2.0))*2) <> 0;
这是我的解决方案,还有更好的方法吗?