【tratascratch】SQL+Python刷题笔记——10308:Salaries Differences【Easy】

ID 10308——Salaries Differences【题目链接】

难度:Easy【简单】
公司:Dropbox【多宝箱】
考察方式:Interview Questions【面试题目】

问题描述

Salaries Differences【薪资差异】

Write a query that calculates the difference between the highest salaries found in the marketing and engineering departments. Output just the difference in salaries.

编写一个查询,计算marketing部门和engineering 部门的最高工资之间的差异。
输出:工资的差异。

原始表

table1:(db_employee)
在这里插入图片描述

table2:(db_dept)
在这里插入图片描述

解决方案

SQL方法

SELECT
    (SELECT MAX(SALARY)
    FROM db_employee de
    LEFT JOIN db_dept dd
    ON de.department_id = dd.id
    WHERE department = 'marketing') // 找出marketing部门的最高薪
    -
    (SELECT MAX(SALARY)
    FROM db_employee de
    LEFT JOIN db_dept dd
    ON de.department_id = dd.id
    WHERE department = 'engineering') // 找出engineering部门的最高薪
AS SALARIES_DIFFERENCES  //相减结果存入SALARIES_DIFFERENCES 表

Python方法

# Import your libraries
import pandas as pd
import numpy  as np

# Start writing code
df = pd.merge(db_employee, db_dept, how = 'left',left_on = ['department_id'], right_on=['id'])
df1=df[df["department"]=='engineering']
df_eng = df1.groupby('department')['salary'].max().reset_index(name='eng_salary')
df2=df[df["department"]=='marketing']
df_mkt = df2.groupby('department')['salary'].max().reset_index(name='mkt_salary')
result = pd.DataFrame(df_mkt['mkt_salary'] - df_eng['eng_salary'])
result.columns = ['salary_difference']
result

输出结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥映人间冰雪样

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值