如何计算具有特定类型的多个记录

时间:2018-10-24 12:58:16

标签: mysql sql

我想根据其类别类型过滤不同的记录

我有两个表 产品和product_detail

产品

   p_id    p_name    p_cat_id
    1      computer1    101
    1      computer2    101
    2      mobile1      102
    2      mobile2      102
    2      mobile3      102

product_detail

   cat_id  cat_name  cat_staus
    101    computer     active
    102    mobile       active
    103    electronics  active

我想根据类别类型对以下记录进行计数 例如,计算机1和计算机2具有cat_id,因此输出将是计算机= 2

查询:

SELECT product_id,cat_name, 
        COUNT(DISTINCT product_detail.cat_name) AS "my_product" 
        FROM product 
        INNER JOIN product_detail ON product.p_id = product_detail.cat_id
GROUP BY product_detail.cat_id

3 个答案:

答案 0 :(得分:1)

如果我的理解正确,您想计算具有某种类别的产品的数量;即:“对于每个类别,请显示该类别的名称以及该类别的产品数量”

在这种情况下,请使用此:

SELECT cat_name,
        COUNT(1) AS amount 
        FROM product
        INNER JOIN product_detail ON product.p_id = product_detail.cat_id
GROUP BY product_detail.cat_id

INNER JOIN已创建一个类别中所有产品的列表。 GROUP BY将使您可以具体查看每个类别。您所需要做的就是每个类别的COUNT行。

答案 1 :(得分:1)

SELECT product.p_cat_id,
       product_detail.cat_name, 
       COUNT(DISTINCT product.p_name) AS "my_product_count" 
FROM product 
LEFT JOIN product_detail 
ON product.p_cat_id = product_detail.cat_id
GROUP BY product.p_cat_id

答案 2 :(得分:1)

查询:

SELECT product_detail.cat_name,
        COUNT(p_cat_id) AS "my_product" 
        FROM product 
        INNER JOIN product_detail ON product.p_cat_id = product_detail.cat_id
GROUP BY  product_detail.cat_name