JOIN - 从一个表计数,总和从另一个表计数

时间:2017-07-10 18:39:34

标签: mysql join

演示示例:

tab_sellers:

id_seller | seller 
   1         John  
   2         Marie 
   3         Jamie 
   4         Arnold
   5         peter 

tab_sales:

id | sales | seller | value
1     BMW       1      100
2     FORD      1      200
3     FIAT      2      300
4     FORD      2      400
5     FORD      3      400

我想要实现的目标是:

1- tab_sellers 中来自卖方的卖家的总和(已编辑:不是总和,为COUNT),以及来自值<的总销售额< / em>在 tab_sales

预期结果:

total_sellers | total_value_sales
      5           14000

2-有销售的卖家和销售总额的总和(编辑:不是总和,是COUNT)

预期结果:

total_sellers_with_sales | total_value_sales
         3                       14000

编辑:我尝试失败的一个例子

  SELECT COUNT(ts.seller) AS tab_sellers,
       COALESCE(SUM(tsl.value),0) AS total_value_sales
  FROM tab_sellers ts 
  LEFT JOIN tab_sales tsl ON ts.id_seller = tsl.seller

我得到的是正确的总和,但没有正确的计数

2 个答案:

答案 0 :(得分:1)

我没试过,但这2个问题应该回答你

(-a)

答案 1 :(得分:1)

在一个查询中:

select 
  count(distinct sel.id_seller) as sellers,
  count(distinct sal.seller) as sellers_with_sales,
  sum(sal.value) as total_value_sales
from tab_sellers sel 
left join tab_sales sal on sal.seller = sel.id_seller;