菜鳥的MySQL學習之旅(六) 實戰二

2021-09-11 20:24:44 字數 3209 閱讀 9681

trips 表中存所有計程車的行程資訊。每段行程有唯一鍵 id,client_id 和 driver_id 是 users 表中 users_id 的外來鍵。status 是列舉型別,列舉成員為 (『completed』, 『cancelled_by_driver』, 『cancelled_by_client』)。

idclient_id

driver_id

city_id

status

request_at11

101completed

2013-10-0122

111cancelled_by_driver

2013-10-0133

126completed

2013-10-0144

136cancelled_by_client

2013-10-0151

101completed

2013-10-0262

116completed

2013-10-0273

126completed

2013-10-0282

1212

completed

2013-10-0393

1012

completed

2013-10-03104

1312

cancelled_by_driver

2013-10-03

users 表存所有使用者。每個使用者有唯一鍵 users_id。banned 表示這個使用者是否被禁止,role 則是乙個表示(『client』, 『driver』, 『partner』)的列舉型別。

users_id

banned

role1no

client

2yes

client3no

client4no

client

10no

driver

11no

driver

12no

driver

13no

driver

寫一段 sql 語句查出 2023年10月1日 至 2023年10月3日 期間非禁止使用者的取消率。基於上表,你的 sql 語句應返回如下結果,取消率(cancellation rate)保留兩位小數。

daycancellation rate

2013-10-01

0.33

2013-10-02

0.00

2013-10-03

0.50

select t.request_at as

day,

round

(sum

(case

when t.

status

='completed'

then

0else

1end)/

count(*

),2)

as'cancellation rate'

from trips as t

inner

join

users as u on t.client_id = u.users_id

and u.banned =

'no'

group

by t.request_at;

結果

將昨天employee表清空,重新插入以下資料(其實是多插入5,6兩行):

idname

salary

departmentid

1joe

7000012

henry

8000023

sam6000024

max9000015

janet

6900016

randy

85000

1編寫乙個 sql 查詢,找出每個部門工資前三高的員工。例如,根據上述給定的**,查詢結果應返回:

department

employee

salary

itmax

90000

itrandy

85000

itjoe

70000

sales

henry

80000

sales

sam60000

select department.name as department, e1.name as employee, e1.salary as salary

from employee e1

inner

join department

on e1.departmentid = department.id

where

3>

(select

count

(distinct e2.salary)

from employee e2

where e2.salary > e1.salary and e1.departmentid = e2.departmentid

)order

by department.name, e1.salary desc

結果

依然是昨天的分數表,實現排名功能,但是排名是非連續的,如下:

score

rank

4.00

14.00

13.85

33.65

43.65

43.50

6

select score,

(select

count

(score)+1

from score

where score > s.score)as

'rank'

from score as s

order

by score desc

;

結果

菜鳥C語言學習之旅

學c 的時候沒好好學,直接奔著前台學習了一大堆前台技術,現在又重新撿起程式語言的學習,從c開始,菜鳥之旅 基礎的c語言的結構還是知道滴,從hello world開始自己乙個個的敲,遇到的問題很菜,僅供留給自己。1.return 語句的作用,之前敲很多c 的 都不會加return語句,覺得有沒有無所謂...

Mysql 應用學習之旅

每次安裝,都會重新踩一遍坑,後面爭取可以把自己的踩坑探索過程都進行記錄整理,不被同一塊石頭絆倒兩次。關閉防火牆後,再重新進行安裝,安裝之後,無需重啟電腦即可啟動執行 以管理員身份執行 net start mysql 啟動mysql服務 net stop mysql 停止mysql服務 mysql u...

菜鳥的PAT訓練之旅 9

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。輸入格式 測試輸入包含乙個測試用例,在一行內給出總長度不超過80的字串。字串由若干單詞和若干空格組成,其中單詞...