1. 程式人生 > 其它 >牛客線上程式設計練習:SQL27_較難

牛客線上程式設計練習:SQL27_較難

技術標籤:牛客線上程式設計_SQL篇mysqlsql資料庫

SQL練習:SQL27_較難


題目: 給出每個員工每年薪水漲幅超過5000的員工編號emp_no、薪水變更開始日期from_date以及薪水漲幅值salary_growth,並按照salary_growth逆序排列。

提示:在sqlite中獲取datetime時間對應的年份函式為strftime(’%Y’, to_date)

(資料保證每個員工的每條薪水記錄to_date-from_date=1年,而且同一員工的下一條薪水記錄from_data=上一條薪水記錄的to_data)

CREATE TABLE `salaries`
( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`from_date`));

在這裡插入圖片描述

題解

# 思路:自連線,用明年的薪資減去今年薪資
SELECT S1.emp_no,S1.from_date,S1.salary-S2.salary salary_growth
FROM salaries S1 # 今年薪資的表S1,明年薪資的表S2
JOIN salaries S2 ON S1.emp_no =
S2.emp_no AND S1.from_date = S2.to_date WHERE S1.salary-S2.salary > 5000 ORDER BY salary_growth DESC
  • 個人整理的筆記,僅供學習使用,有問題麻煩指正。
  • 題目來源於:牛客網