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

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

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

解釋 在5月,公司的平均工資是 (9000+6000+10000)/3 = 8333.33... 由于部門 '1' 里只有一個(gè) employee_id 為 '1' 的員工,所以部門 '1' 的平均工資就是此人的工資 9000 。因?yàn)?9000 > 8333.33 ,所以比較結(jié)果是 'higher'。第二個(gè)部門的平均工資為 employee_id 為 '2' 和 '3' 兩個(gè)人的平均工資,為 (6000+10000)/2=8000 。因?yàn)?8000 < 8333.33 ,所以比較結(jié)果是 'lower' 。在4月用同樣的公式求平均工資并比較,比較結(jié)果為 'same' ,因?yàn)椴块T '1' 和部門 '2' 的平均工資與公司的平均工資相同,都是 7000 。
測(cè)試數(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)參考答案
應(yīng)讀者的要求,我將參考答案公布了,有需要的同學(xué)可以在下方公眾號(hào)「數(shù)據(jù)前線」(非本號(hào))后臺(tái)回復(fù)關(guān)鍵字:0903,即可獲取。還是建議先獨(dú)立答題~
數(shù)據(jù)前線
后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群。
