查询以查看针对相同ProductId的ProductName计数

时间:2015-10-08 16:04:06

标签: sql sql-server sql-server-2008 tsql

enter image description here

如何编写Sql Query以根据一个产品ID显示名称数量。 例如,在此示例中:对于ProductId - 263,Count(Name)= 3

我想看看

263 3
264 2 
265 10
266 0 (if null)

4 个答案:

答案 0 :(得分:2)

SELECT productid, COUNT(*)
FROM products 
GROUP BY productid

这不是一个确切的答案,但它会返回每个独特产品的productid的出现次数。它可以帮助您找到结果。

答案 1 :(得分:1)

假设您有一个产品表,那么您需要一个left join

select p.productid, count(pn.productid)
from products p left join
     productnames pn
     on p.productid = pn.productid
group by p.productid;

答案 2 :(得分:0)

庞。

我已经使用CTE写了一个答案,它将为您提供每个产品的所有名称的计数,这些名称可以轻松更改为COUNT DISTINCT名称。

   ;WITH    CTE_DISTINCT_NAMES
        AS (SELECT      --DISTINCT 
                        /* Uncomment "DISTINCT" above 
                           to include duplicate names 
                           in the COUNT
                           */
                        ProductId   
            ,           Name        
            FROM        TABLE1
            )
        SELECT      T.ProductId
        ,           COUNT(ISNULL(T.Name,'')) AS [COUNT(Name)]
        FROM        CTE_DISTINCT_NAMES AS T
        GROUP BY    T.ProductId

答案 3 :(得分:-2)

试试这个解决方案:

SELECT 
    PRODUCT_ID AS PID,
    COALESCE(COUNT(NAME), 0) AS CNT
FROM YOUR_TABLE
GROUP BY PRODUCT_ID