牛客SQL練習第60題

2021-10-09 09:19:09 字數 1558 閱讀 3151

按照salary的累計和running_total,其中running_total為前n個當前( to_date = 『9999-01-01』)員工的salary累計和,其他以此類推。 具體結果如下demo展示。。

create

table

`salaries`

(`emp_no`

int(11)

notnull

,`salary`

int(11)

notnull

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`from_date`))

;

輸出格式:

emp_no

salary

running_total

10001

88958

88958

10002

72527

161485

10003

43311

204796

10004

74057

278853

10005

94692

373545

10006

43311

416856

10007

88070

504926

10009

95409

600335

10010

94409

694744

10011

25828

720572

由題和表可以得知 running_total 就是小於等於自己的emp_no的salary的和

select 

s1.emp_no,

s1.salary,

(select

sum(s2.salary)

from salaries s2

where s2.emp_no<=s1.emp_no

and s2.to_date=

'9999-01-01'

) running_total

from salaries s1

where s1.to_date=

'9999-01-01'

order

by s1.emp_no

--

還可以用視窗函式解決:

關於視窗函式的簡單解釋可以看這裡

select 

emp_no,

salary,

sum(salary)

over

(order

by emp_no)

as running_total

from salaries

where to_date=

'9999-01-01'

牛客SQL練習第57題

使用含有關鍵字exists查詢未分配具體部門的員工的所有資訊。create table employees emp no int 11 notnull birth date date notnull first name varchar 14 not null last name varchar 1...

牛客SQL練習第68題

牛客每天有很多人登入,請你統計一下牛客每個使用者最近登入是哪一天,用的是什麼裝置.有乙個登入 login 記錄表,簡況如下 第1行表示id為2的使用者在2020 10 12使用了客戶端id為1的裝置登入了牛客網 第4行表示id為3的使用者在2020 10 13使用了客戶端id為2的裝置登入了牛客網 ...

牛客SQL練習第25題

獲取員工其當前的薪水比其manager當前薪水還高的相關資訊,當前表示to date 9999 01 01 結果第一列給出員工的emp no,第二列給出其manager的manager no,第三列給出該員工當前的薪水emp salary,第四列給該員工對應的manager當前的薪水manager ...