MySQL Count和SUM来自第二个表with group by

时间:2017-08-23 20:51:28

标签: mysql join

我试图通过交叉两个表来获得销售和数量销售,第一个分组和第二个分组。

第一个表有销售/操作:id_sales,sales_rep 第二个表有销售详细信息:id_sales_details,id_sales,quantity

我需要知道的是每个sales_rep有多少次操作,所有这些销售的总金额是多少。

这个MySQL查询给了我第一部分:

SELECT sales.sales_rep, count(*) AS sales
from sales
Group by sales_rep
Order by sales DESC

我无法解决的是如何向该查询添加我需要的第二部分。结果应该类似于:

SALES_REP销售数量
克莱尔4 13个
彼得2月18日
玛丽18个
约1 7

这是一个让事情更清晰的小提琴:http://sqlfiddle.com/#!9/708234/5

2 个答案:

答案 0 :(得分:2)

SELECT s.sales_rep, count(*) AS operations, sum(d.quantity)
  from sales s, sales_details d 
   where s.id_sales = d.id_sales 
   Group by s.sales_rep 
   Order by operations DESC;

答案 1 :(得分:0)

快速解决方案

SELECT w.sales_rep, w.sales, SUM(quantity) as quantity
FROM
(SELECT s.sales_rep, t.sales,d.quantity FROM sales AS s
INNER JOIN  sales_details AS d ON s.id_sales = d.id_sales
INNER JOIN  
  (SELECT sales_rep, count(*) AS sales
   from sales
   Group by sales_rep
   Order by sales DESC ) AS t 
  ON s.sales_rep = t.sales_rep) AS w

  GROUP BY w.sales_rep, w.sales
  ORDER BY w.sales_rep ASC