2013-12-10 48 views

回答

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
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

+1爲'ROW_NUMBER()'得到OP請求的輸出。 –

+0

這就是答案!謝謝! = d –

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字段,因爲您必須按類別分組。

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