employee_id字段是表employee中employee_id字段的外键。

官方标记,这是一道困难题。而且,如果你先翻到最下面偷瞄了眼参考SQL,大概也会有这样的错觉。

实际上,这是一道非常简单的题目。只是用到的知识点比较多,解题步骤相对也繁琐一些。

源表Salary中记录了所有员工每个月的工资。

源表Employee中记录了所有员工所属的部门。

题目要求:计算出,所有月份所有部门的平均工资与全公司平均工资的比较结果。

因为发薪日期具体到某一天,因此需要将日期转换为月份,使用DATE_FORMAT日期函数可以实现。

然后使用GROUP BY + AVG直接按月份分组统计即可。

这里需要对平均工资保留2位小数,可以使用ROUND函数实现。

第二步:计算出每个部门每个月的平均工资;

与第一步类似,只是需要先关联出每个员工所属的部门。在分组统计时,使用月份+部门ID分组即可。

第三步:对比第一步和第二步的结果;

使用INNER JOIN关联出每个月每个部门的平均工资和全公司平均工资,使用CASE WHEN+条件比较,得出结果并返回。