从SQL语句中获取平均数

时间:2016-06-18 16:54:47

标签: mysql average

我有一个SQL语句:

SELECT AVG(`totalhours`)/5 AS `average`,* FROM `report_signout` JOIN `employee` ON `employee`.`username`=`report_signout`.`username`

然而它不起作用。基本上我需要计算员工在任何一周内在场所的平均总小时数,假设办公室每周只开放5天。总时数来自我需要加入report_signout usernameemployee的表ctypes,因此我可以生成一个结果,然后我可以列出其中的名字和姓氏员工以及网页上的平均小时数。最后一部分是用PHP完成的,我已经知道该怎么做了。我只需要看看我在SQL语句中出错了。

如果有人可以向我指出或给我一些帮助,我将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:2)

MySQL并不真正知道totalhours是什么。当您引用多个表时,表未被假定为,因此您需要通过将引用定义为以下来声明平均值:

`table name`.`column name`

对于大多数(如果不是全部)MySQL内置函数都是如此。尽可能使用绝对声明(即具有表和列名称的声明,如上所述)。

SELECT AVG(`report_signout`.`totalhours`)/5 AS `average`,  
`report_signout`.*, `employee`.* 
FROM `report_signout` 
INNER JOIN `employee` ON `employee`.`username` = `report_signout`.`username`

作为一小部分,请尝试避免模糊的JOIN引用,而不是使用完整的JOIN引用,该引用指出JOIN的类型而不是假设。

还尝试避免使用*选择,而不是说明您要拨打的每个列。