我想根据其类别类型过滤不同的记录
我有两个表 产品和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
答案 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