牛客SQL練習第26題

2021-10-10 05:59:07 字數 1618 閱讀 8350

彙總各個部門當前員工的title型別的分配數目,即結果給出部門編號dept_no、dept_name、其部門下所有的當前(dept_emp.to_date = 『9999-01-01』)員工的當前(titles.to_date = 『9999-01-01』)title以及該型別title對應的數目count

(注:因為員工可能有離職,所有dept_emp裡面to_date不為』9999-01-01』就已經離職了,不計入統計,而且員工可能有晉公升,所以如果titles.to_date 不為 『9999-01-01』,那麼這個可能是員工之前的職位資訊,也不計入統計)

create

table

`departments`

(`dept_no`

char(4

)not

null

,`dept_name`

varchar(40

)not

null

,primary

key(

`dept_no`))

;

create

table

`dept_emp`

(`emp_no`

int(11)

notnull

,`dept_no`

char(4

)not

null

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`dept_no`))

;

create

table

ifnot

exists

`titles`

(`emp_no`

int(11)

notnull

,`title`

varchar(50

)not

null

,`from_date`

date

notnull

,`to_date`

date

default

null

);

select 

de.dept_no,

dp.dept_name,

t.title,

count

(t.title)

as count

from titles as t

inner

join dept_emp as de

on t.emp_no = de.emp_no

and de.to_date =

'9999-01-01'

and t.to_date =

'9999-01-01'

inner

join departments as dp

on de.dept_no = dp.dept_no

group

by de.dept_no, t.title

牛客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練習第60題

按照salary的累計和running total,其中running total為前n個當前 to date 9999 01 01 員工的salary累計和,其他以此類推。具體結果如下demo展示。create table salaries emp no int 11 notnull salary...

牛客SQL練習第68題

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