2010-10-25 7 views
2

Я пытаюсь получить счетчик заказов для каждого типа заказа (OrderTypeID) и кол-заказов для каждого типа заказа различных продуктов (ProductID) например:SQL Server Количество

OrderID, OrderTypeID, ProductID 
1, 1, 1 
2, 1, 6 
3, 2, 6 
4, 1, 1 
5, 2, 6 
6, 2, 6 
7, 2, 6 
8, 3, 1 

Результат:

OrderTypeID, Count1, Count2 
1, 3, 2 
2, 4, 1 
3, 1, 1 

В настоящее время я получаю count1, но не смог получить правильный результат для count2.

упрощенная версия моего запроса:

SELECT 
    Order.OrderTypeID, 
    COUNT(Order.OrderTypeID) AS 'Count1' 
FROM 
    Order 
GROUP BY Order.OrderTypeID 

Значительно признателен за любую помощь.

ответ

2
SELECT 
    Order.OrderTypeID, 
    COUNT(Order.OrderTypeID) AS 'Count1', 
    COUNT(distinct Order.ProductID) as 'Count2' 

FROM 
    Order 
GROUP BY Order.OrderTypeID 
2

Использование DISTINCT:

SELECT 
    Order.OrderTypeID, 
    COUNT(Order.OrderTypeID) AS 'Count1' 
    COUNT(DISTINCT Order.OrderTypeID) AS 'Count2' 
FROM 
    Order 
GROUP BY Order.OrderTypeID 
Смежные вопросы