產品名稱的計數如何編寫SQL查詢來展示基於一個產品ID名稱的數量。 例如,在這個例子中:對於產品編號 - 263,計數(名稱)= 3
我想看到
263 3
264 2
265 10
266 0 (if null)
產品名稱的計數如何編寫SQL查詢來展示基於一個產品ID名稱的數量。 例如,在這個例子中:對於產品編號 - 263,計數(名稱)= 3
我想看到
263 3
264 2
265 10
266 0 (if null)
假設你有一個產品表,那麼你想有一個left join
:
select p.productid, count(pn.productid)
from products p left join
productnames pn
on p.productid = pn.productid
group by p.productid;
您好@gordonlinoff,請您花些時間看看這個[回覆](http://stackoverflow.com/a/33006952/460557)它與這個問題沒有關係,但我認爲這對一個專家來說是值得的你自己去看看。問題涉及這兩個鏈接[sqlfiddle 1](http://sqlfiddle.com/#!2/c77d8/7)和[sqlfiddle 2](http://sqlfiddle.com/#!9/c77d8/182)通知'quantity_diff'列中的最後一個值 –
嘗試這種解決方案:
SELECT
PRODUCT_ID AS PID,
COALESCE(COUNT(NAME), 0) AS CNT
FROM YOUR_TABLE
GROUP BY PRODUCT_ID
SELECT PRODUCT_ID AS PID,ISNULL(COUNT(NAME),0)作爲CNT從YOUR_TABLE GROUP BY PRODUCT_ID – BalajiShriram
SELECT productid, COUNT(*)
FROM products
GROUP BY productid
這不是一個確切的答案,但它會返回每個獨特productid的productid出現次數。它可以幫助你找到你的結果。
龐。
我已經使用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
'選擇產品ID,通過productid'從表名組數(名稱),你怎麼知道下一個ID像266 – wiretext
這可能算作一個答案。 – arcyqwerty