【问题标题】:SQL to find number of expired products and total number of products by categorySQL按类别查找过期产品数和产品总数
【发布时间】:2014-06-18 08:43:05
【问题描述】:

我的 SQL 查询有问题。

这是我的产品表:

产品
• 身份证
• 姓名
• 价格
• 过期
• fk_category

我想要按类别分类的过期产品数量和产品总数。

我写了以下查询,但我很难完成它:

SELECT COUNT(id) as nb_expired, COUNT (id) as nb_product
FROM product
WHERE expired = 1
GROUP BY fk_category;

你能帮帮我吗?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您可以在count 中使用case 语句,仅用于那些过期的:

    SELECT sum(case when expired = 1 then 1 else 0 end) as nb_expired
    ,      COUNT (id) as nb_product
    FROM   product
    GROUP
    BY     fk_category
    

    【讨论】:

      【解决方案2】:
      SELECT fk_category, sum(case when expired = 1 then 1 else 0 end) as expired_count,
      COUNT (1) as total 
      FROM   product 
      GROUP BY     fk_category
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-23
        • 1970-01-01
        • 1970-01-01
        • 2020-08-20
        • 2019-07-09
        相关资源
        最近更新 更多