查询中的avg-mysql
我有这个疑问查询中的avg-mysql,mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我有这个疑问 SELECT salary FROM worker W JOIN single_user U ON u.users_id_user = W.single_user_users_id_user JOIN university_has_single_user US ON US.single_user_users_id_user = U.users_id_user JOIN course C ON C.id_course = US.course_id_
SELECT salary
FROM worker W
JOIN single_user U ON u.users_id_user = W.single_user_users_id_user
JOIN university_has_single_user US ON US.single_user_users_id_user = U.users_id_user
JOIN course C ON C.id_course = US.course_id_course
JOIN formation_area FA ON FA.id_formation_area = C.formation_area_id_formation_area
WHERE FA.area = "Multimédia"
GROUP BY users_id_user
…产生了以下输出:
salary
--------
1400.00
800.00
如何计算此输出的平均值?如果我加上:
SELECT round(avg (salary), 0)
…输出再次为1400.00和800.00,而不是平均值(因为分组依据)。使用:
SELECT AVG(DISTINCT salary)
FROM worker W
JOIN single_user U ON u.users_id_user = W.single_user_users_id_user
JOIN university_has_single_user US ON US.single_user_users_id_user = U.users_id_user
JOIN course C ON C.id_course = US.course_id_course
JOIN formation_area FA ON FA.id_formation_area = C.formation_area_id_formation_area
WHERE FA.area = "Multimédia"
因为salary
列未包装在聚合中
通常,您需要一个派生表来获得不同值的平均值。我遇到的问题是,例如,一个人有两门课程,工资重复两次。现在很好,但是对于不同的人也可以有相同的薪水。。我的问题是-是否需要在那里放置不同的文件???