SQL每日一題(20210903)
點擊關(guān)注上方“SQL數(shù)據(jù)庫開發(fā)”,
設為“置頂或星標”,第一時間送達干貨 SQL專欄 SQL基礎知識第二版
SQL高級知識第二版
題目
給如下兩個表,寫一個查詢語句,求出在每一個工資發(fā)放日,每個部門的平均工資與公司的平均工資的比較結(jié)果 (高 / 低 / 相同)。表:T0903A(工資表)

其中employee_id 字段是下表 T0903B(員工表)中 employee_id 字段的外鍵。

對于如上樣例數(shù)據(jù),結(jié)果為:

解釋 在5月,公司的平均工資是 (9000+6000+10000)/3 = 8333.33... 由于部門 '1' 里只有一個 employee_id 為 '1' 的員工,所以部門 '1' 的平均工資就是此人的工資 9000 。因為 9000 > 8333.33 ,所以比較結(jié)果是 'higher'。第二個部門的平均工資為 employee_id 為 '2' 和 '3' 兩個人的平均工資,為 (6000+10000)/2=8000 。因為 8000 < 8333.33 ,所以比較結(jié)果是 'lower' 。在4月用同樣的公式求平均工資并比較,比較結(jié)果為 'same' ,因為部門 '1' 和部門 '2' 的平均工資與公司的平均工資相同,都是 7000 。
測試數(shù)據(jù)
CREATE TABLE T0903A
(
ID INT,
Employee_ID INT,
Amount INT,
Pay_Date DATE
)
INSERT INTO T0903A VALUES
(1,1,9000,'2021-05-31'),
(2,2,6000,'2021-05-31'),
(3,3,10000,'2021-05-31'),
(4,1,7000,'2021-04-30'),
(5,2,6000,'2021-04-30'),
(6,3,8000,'2021-04-30')
CREATE TABLE T0903B
(
Employee_ID INT,
Department_ID INT
)
INSERT INTO T0903B VALUES
(1,1),
(2,2),
(3,2)參考答案
應讀者的要求,我將參考答案公布了,有需要的同學可以在下方公眾號「數(shù)據(jù)前線」(非本號)后臺回復關(guān)鍵字:0903,即可獲取。還是建議先獨立答題~
數(shù)據(jù)前線
后臺回復關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
后臺回復關(guān)鍵字:進群,帶你進入高手如云的交流群。
評論
圖片
表情
