2014-03-13 115 views
3

我在購物車表中遇到了一些麻煩。我創建了一個表,看起來像這樣:MySQL - 查找並計算重複項(數量)

SQL Fiddle

我的問題是,我希望能夠選擇的產品ID,並在此產品ID是多少次在表重複計數所以我可以顯示用戶在購物車中有多少數量的物品。

尋找,看起來像這樣的輸出結果:

| user_id | product_id | num of prodcuts| 
----------------------------------------- 
| 12 |  43  |  3  | 
| 12 |  51  |  1  | 
| 21 |  39  |  2  | 
| 17 |  41  |  1  | 

所以我想選擇product_id,並在一個單一的查詢算什麼,我有沒有怎麼會是這樣做的想法我真的很感謝一些幫助。

+1

幾個答案似乎只待PRODUCT_ID分組,所以我加了一些更多的數據,以你的例子sqlfiddle多個用戶訂購相同的product_id:http://sqlfiddle.com/#!2/a6828/1 –

回答

3
select user_id, product_id, count(product_id) as num_of_prod 
from cart 
group by user_id, product_id 

http://sqlfiddle.com/#!2/4f023/12

+0

非常感謝,正是我所期待的。 –

1

查詢:

SELECT user_id,product_id,count(*) AS amount 
FROM cart 
GROUP BY product_id; 
1

要選擇所有產品,並計算有多少不管cart_iduser_id,你可以使用:

SELECT *, COUNT(*) AS num_products FROM cart GROUP BY user_id, product_id; 

如果你需要更具體或量身定做的東西,讓我知道。

+1

您需要通過user_id和product_id進行分組...如果2個用戶訂購了相同的產品ID,該怎麼辦? –

0
SELECT 
    user_id, 
    product_id, 
    count(*) AS 'num of prodcuts' 
FROM 
    cart 
GROUP BY 
    product_id, 
    user_id 
ORDER BY 
    user_id