【问题标题】:only return records with odd count in a table with sql command使用 sql 命令只返回表中奇数的记录
【发布时间】:2015-02-08 19:06:46
【问题描述】:

我的 Access 数据库中有一个仓库表,如下所示:

   product_id
       10
       20
       20
       30
       30
       30
       40
       40
       40
       40

现在我需要一个 SQL 查询来返回 10, 30
product_ids 在表中有奇数。

SELECT product_id, Count(product_id) AS cnt
FROM warehouse
GROUP BY product_id;

此查询返回每个值的计数,但我如何编辑它以仅返回奇数 cnt 的行?

【问题讨论】:

    标签: sql ms-access select


    【解决方案1】:

    您可以将having 子句与mod 运算符一起使用:

    SELECT   product_id, COUNT(product_id) AS cnt
    FROM     warehouse
    GROUP BY product_id
    HAVING   COUNT(product_id) MOD 2 = 1;
    

    【讨论】:

      【解决方案2】:
      SELECT *
      FROM (SELECT product.id, count(product.id) AS cnt FROM  warehouse GROUP BY product.id) 
      WHERE (cnt - (Round(cnt/2.0))*2) <> 0;
      

      这是我的解决方案,有没有更好的方法?

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多