MySQL練習(1)——樓棟、房間、訂單

樓棟表:tb_build

房間表:tb_room

訂單表:tb_order

1、查詢出如下結果

NewName

RoomArea

RommTotal

1棟-101

86

750000

 

 

 

分析:RoomArea和RoomTotal字段都可以直接從房間表獲得,而NewName字段,是由“樓棟表.樓棟名稱”和“房間表.房間名稱”分別組成的,需要用到函數“Concat_ws()”。

SQL語句:

SELECT CONCAT_WS('-',b.BuildName,r.RoomName) as NewName,r.RoomArea,r.RoomTotal

FROM tb_build as b,tb_room as r

WHERE r.BuildId = b.BuildId;

結果:

總結:

A、無分隔符——concat()

B、有分隔符——concat_ws()

2、每棟樓交易了幾單,每單均價是多少,每棟樓交易總價是多少?具體查詢出如下結果:

樓棟名稱

交易訂單數量

每單交易均價

交易總價

1棟

2

766605

1533210

 

 

 

 

分析:

A、獲取各訂單對應的樓棟名稱:

B、按樓棟ID計算“每棟樓的訂單記錄數”:

C、按照同樣的方式計算“每棟樓的交易總價”

D、計算“每棟樓的交易均價”:

SQL語句:

SELECT b.BuildName,COUNT(o.OrderId) as countOrder,SUM(o.OrderPrice)/COUNT(o.OrderId) as avgPrice,SUM(o.OrderPrice) as sumPrice

FROM tb_order as o,tb_room as r,tb_build as b

WHERE o.RommId = r.RoomId AND r.BuildId = b.BuildId

GROUP BY b.BuildName;

結果:

3、查詢每月每棟樓的交易情況,具體如下:

OrderMonth

BuildName

CountRoom

OrderPrice

4

1棟

2

1533100.00

 

 

 

 

代碼:

SELECT MONTH(o.OrderDate) as OrderMonth,b.BuildName,
			 COUNT(o.OrderId) as CountRoom,
			 SUM(o.OrderPrice) as sumPrice
FROM tb_order as o,tb_room as r,tb_build as b
WHERE o.RommId = r.RoomId AND r.BuildId = b.BuildId
GROUP BY b.BuildId;

結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章