答案 0 :(得分:2)
select id_category,
count(1) as qty_products,
count(case when product_price>5 then 1 end) as [qty_products>5]
from orders
group by id_category
它应该为您提供每个类别的产品数量。我不确定你想要显示为“id_order”但是......如果它只是行号,那么你可以做类似的事情
select ROW_NUMBER() OVER(ORDER BY id_category) as rownum,id_category,
count(1) as qty_products,
count(case when product_price>5 then 1 end) as [qty_products>5]
from orders
group by id_category
答案 1 :(得分:0)
所有
SELECT
id_category,
count(*) AS COUNT
FROM orders
GROUP BY id_category
输出:
ID_CATEGORY COUNT
1 12
2 10
5 6
只有价格> = 5:
SELECT
id_category,
COUNT(*) AS COUNT
FROM orders
WHERE product_price >=5
GROUP BY id_category
输出:
ID_CATEGORY COUNT
1 10
2 7
5 3
答案 2 :(得分:0)
SELECT ID_CATEGORY, COUNT(ID_PRODUCT) AS NoOfProducts,
SUM(CASE WHEN PRODUCT_PRICE > 5 THEN 1 ELSE 0 END) AS ProductsAbove5
FROM Orders GROUP BY ID_CATEGORY
小提琴here
但是,您无法获得 Id_Order 字段,因为您必须按类别进行分组。
答案 3 :(得分:0)
select
id_category,
count(id_product) as CountAll,
count(case when product_price > 5 then 1 else 0 end) as CountGreaterThan5
from orders
group by id_category