如何编写Sql Query以根据一个产品ID显示名称数量。 例如,在此示例中:对于ProductId - 263,Count(Name)= 3
我想看看
263 3
264 2
265 10
266 0 (if null)
答案 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