携程数分笔试第二道sql

SELECT t2.*,t1.corp_avg_sal,
(CASE WHEN dept_avg_sal>corp_avg_sal THEN 'higher'
      WHEN dept_avg_sal<corp_avg_sal THEN 'lower'
      ELSE 'same' END) AS comparison
FROM 
    (SELECT DATE_FORMAT(pay_date,'%Y-%m') AS pay_month,department_id,ROUND(SUM(amount)/COUNT(*),1) AS dept_avg_sal
     FROM       (SELECT s.employee_id,s.amount,s.pay_date,e.department_id       FROM salary s       LEFT JOIN employee e       ON s.employee_id=e.employee_id)tmp
     GROUP BY pay_month,department_id)t2
LEFT JOIN
    (SELECT DATE_FORMAT(pay_date,'%Y-%m') AS pay_month,ROUND(SUM(amount)/COUNT(*),11) AS corp_avg_sal
     FROM 
         (SELECT s.employee_id,s.amount,s.pay_date,e.department_id
          FROM salary s
          LEFT JOIN employee e
          ON s.employee_id=e.employee_id)tmp
     GROUP BY pay_month)t1
ON t2.pay_month=t1.pay_month
ORDER BY pay_month,department_id ASC

家人们,帮忙看看为啥round写的保留11位,却只能保留9位小数后面全是0
我的结果

原题结果

#携程笔试##笔试题目##携程#
全部评论
不好意思代码格式有点问题😂
点赞 回复
分享
发布于 2021-09-09 21:39
我的也显示是这样的,但是好像没有影响
点赞 回复
分享
发布于 2021-09-09 21:54
英特尔
校招火热招聘中
官网直投
请问楼主投的哪里的?
点赞 回复
分享
发布于 2021-09-10 09:05
主要原因应该是sqlite不支持date_format...
点赞 回复
分享
发布于 2021-09-15 10:38
lz约面了吗
点赞 回复
分享
发布于 2021-09-15 10:43

相关推荐

1 14 评论
分享
牛客网
牛客企业服务