我有一张桌子(销售),其中有四列;
id, user_id, product_id, and date_added.
我需要统计用户已销售的具有特定ID的产品数量,还需要获得该用户在当月销售的产品总数。
我无法对总产品求和。我有;
SELECT user_id, product_id, count(user_id)
FROM sales
WHERE MONTH(date_added) = MONTH(CURRENT_DATE)
GROUP BY user_id, product_id;
如何计算用户的总销售额,以便获得特定product_id占总销售额的百分比?
我希望我的输出看起来像这样;
|----------|----------|----------|----------|
|user_id |product_id|sales |total |
|----------|----------|----------|----------|
|1 |4 |6 |82 |
|2 |4 |3 |121 |
|3 |4 |8 |93 |
|----------|----------|----------|----------|
其中total是用户的销售总数。
(应该指出的是,我不需要mysql来计算百分比-只需获取所有产品销售额的总和即可)
谢谢
最佳答案
您必须使用子查询,因为您依靠聚合函数进行计数
SELECT user_id, @pid:= product_id as product_id, count(user_id),
(SELECT count(*)
FROM sales
WHERE MONTH(date_added) = MONTH( now() )
AND product_id = @pid
group by user_id
) as total_product_sales
FROM sales
WHERE MONTH(date_added) = MONTH( now() )
GROUP BY user_id, product_id;
关于mysql - MySQL COUNT个和所有COUNT个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15809403/