即时通讯试图创建一个评级的平均值。

我尝试了AVG(column_name)。但是,这样做的问题是它对所有收视率求和,并给出平均值。

Select Company.company_id, company.Company_Name, avg(UserJobRating.Total_Rating)
from company
inner join UserJobRating on Job_id = UserJobRating.Job_ID
inner join jobs on jobs.Company_id = company.company_id
group by company.company_id


我想说的是,例如一家专业公司有10/15个职位,每个职位都有职位等级。我希望它可以将特定于该公司的工作归为一组,并对该公司的所有工作给出平均评分。

为此,我需要选择哪种类型的选择?

最佳答案

我将从您的评论中猜测出一些情况,因此我认为您的JOIN有点过时了。尝试这个:

Select Company.company_id, company.Company_Name, avg(UserJobRating.Total_Rating)
from company
  inner join jobs on jobs.Company_id = company.company_id
  inner join UserJobRating on jobs.Job_id = UserJobRating.Job_ID
group by company.company_id



SQL Fiddle Demo


在没有看到表定义的情况下,这有点猜测,但是我敢打赌,您正在使用Cartesian Product表通过以下语句生成UserJobRating

on Job_id = UserJobRating.Job_ID

关于mysql - 寻找平均SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17914573/

10-12 05:37