即时通讯试图创建一个评级的平均值。
我尝试了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/