获取出生日期在当月的销售人员的平均销售额

时间:2018-09-03 09:06:36

标签: mysql

这是我尝试过的查询:-

select firstname,
       salesamt,
       avg(salesamt) 
from salesperson sp, salesfact s 
where sp.salespersonkey=s.salespersonkey and month(birthdate)=month(now()) 
group by firstname;

这是表中的记录: enter image description here

2 个答案:

答案 0 :(得分:0)

如果拳头名称需要平均值,则不应在select子句中添加saleamnt

select firstname
,avg(salesamt) 
from salesperson sp
INNER JOIN  salesfact s ON sp.salespersonkey=s.salespersonkey 
      and month(birthdate)=month(now()) 
group by firstname;

如果您在汇总函数和分组依据中使用同一列,则无法获得汇总结果

并且您不应该使用基于where子句的较旧的隐式连接正税,而应该使用基于INNER JOIN的较新的显式连接正税

答案 1 :(得分:0)

您可以尝试使用内部联接,但是从表中似乎看不到任何记录 因为一个用户在当月只有生日,而他在salesfacta表中没有记录

select firstname,avg(salesamt) from salesperson sp inner join 
salesfact s on sp.salespersonkey=s.salespersonkey
where month(birthdate)=month(now()) 
group by firstname