2013-12-10 1 views
0

мне просто нужно, чтобы получить общее количество товаров по категориям, а также на количество продукта, которые имеют цену> = 5 категорииПолучить полное и частичное количество чего-либо на базы данных - SQL SERVER

Это то, что мне нужно

enter image description here

Вы можете использовать мой пример ON SQL FIDDLE

большое спасибо!

+0

Как вы получаете значение 'id_order', которое вы показываете здесь, из данных в данных SQL Fiddle? –

+0

Это, вероятно, столбец идентичности. Для получения необходимых данных не требуется. – mayabelle

ответ

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 

Fiddle 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 
Смежные вопросы