Task 04 集合運算

2021-10-12 16:35:31 字數 2962 閱讀 3920

4.1 表的加減法

4.1.1 什麼是集合運算

4.1.2 表的加法–union

練習題 :

分別使用 union 或者 or 謂詞,找出毛利率不足 30%或毛利率未知的商品.

參***:

– 使用 or 謂詞

select

*from product

where sale_price / purchase_price <

1.3or sale_price / purchase_price is

null

;

– 使用 union

select

*from product

where sale_price / purchase_price <

1.3union

select

*from product

where sale_price / purchase_price is

null

;

練習題:

找出 product 和 product2 中售價高於 500 的商品的基本資訊.

select

*from product

where sale_price >

500union

select

*from product2

where sale_price >

500;

練習題:

商店決定對product表中利潤低於50%和售價低於1000的商品提價, 請使用union all 語句將分別滿足上述兩個條件的結果取並集. 查詢結果類似下表:

答:

select

*from product

where sale_price <

1000

union

allselect

*from product

where sale_price >

1.5* purchase_price

4.1.3 mysql 8.0 不支援交運算intersect

4.1.4 差集,補集與表的減法

練習題:

找出只存在於product表但不存在於product2表的商品.

-- 使用 in 子句的實現方法

select

*from product

where product_id notin(

select product_id

from product2)

練習題:

使用not謂詞進行集合的減法運算, 求出product表中, 售價高於2000,但利潤低於30%的商品, 結果應該如下表所示.

答:

select

*from product

where sale_price >

2000

and product_id notin(

select product_id

from product

where sale_price<

1.3*purchase_price)

練習題:

使用and謂詞查詢product表中利潤率高於50%,並且售價低於1500的商品,查詢結果如下所示.

答:

select

*from product

where sale_price >

1.5* purchase_price

and sale_price <

1500

4.1.5 對稱差

練習題:

使用product表和product2表的對稱差來查詢哪些商品只在其中一張表, 結果類似於:

– 使用 not in 實現兩個表的差集

select *

from product

where product_id not in (select product_id from product2)

union

select *

from product2

where product_id not in (select product_id from product)

4.2 鏈結(join)

4.2.1 內鏈結(inner join)

練習題:

每個商店中, 售價最高的商品的售價分別是多少?

答案:

select sp.shop_id

,sp.shop_name

,max(p.sale_price)

as max_price

fromshopproduct as sp

inner joinproduct as p

on sp.product_id = p.product_id

group

by sp.shop_id,sp.shop_name

4.2.2 外鏈結(outer join)

4.2.3 多表鏈結

4.2.4 on 子句高階–非等值鏈結

4.2.5 交叉鏈結—— cross join(笛卡爾積)

4.2.6 鏈結的特定語法和過時語法

MySQL learning04 集合運算

sql語句的union會對兩個查詢的結果集進行合併去重,這種去重不僅會去掉兩個結果集相互重複的,還會去掉乙個結果集中的重複行。若要不去重的並集,則需使用union all。union一般是將代表相同屬性的列合併在一起顯示,但即使資料型別不一樣,也能在同一列顯示 會進行隱式型別轉換 mysql8.0不...

TASK04 運算子 控制語句

返回數值 運算子描述 相加 相減 相乘 相除 求餘 自增 自減 返回true或者false 運算子描述 檢查兩個值是否相等,如果相等返回 true 否則返回 false。檢查兩個值是否不相等,如果不相等返回 true 否則返回 false。檢查左邊值是否大於右邊值,如果是返回 true 否則返回 f...

動手學深度 Task04

思考 課程中提到了beam search 覺得講的太粗略,而且例子給的不清晰,留下兩個疑問 在beam search裡面,每乙個保留的是所有搜尋的top k最優,還是一開始分成k個子搜尋,然後每一步保留子搜尋的最優?最終有k個結果,如何選擇最優?注意力機制,簡單的理解,就是對輸入進行加權求平均,而這...