按照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 ...