我有一张桌子(销售),其中有四列;

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/

10-14 14:57
查看更多