Postgre中,求交 並 差集的方法

2021-08-25 12:18:54 字數 786 閱讀 7418

兩個查詢的結果可以用集合操作並,交,差進行組合。語法是

query1 union [all] query2

query1 intersect [all] query2

query1 except [all] query2

query1 和 query2 都是可以使用我們到此為止討論的所有查詢特性的查詢。集合操作也可以巢狀和級連,比如

query1 union query2 union query3

實際上說的是

(query1 union query2) union query3

union 有效地把 query2 的結果附加到 query1 的結果上(不過我們不能保證這就是這些行實際返回的順序)並且刪除結果中所有重複的行, 就象distinct做的那樣,除非你宣告了union all。

intersect 返回那些同時存在於 query1 的結果中和 query2的結果中的行,除非宣告了intersect all, 否則所有重複行都被刪除。

except 返回所有在 query1 的結果中但是不在 query2 的結果中的行。 (有時侯這叫做兩個查詢的差。) 除非宣告了 except all,否則所有重複行都被刪除。

為了計算兩個查詢的並,交,差,這兩個查詢必須是"並集相容的",也就意味著它們都返回同樣數量的列, 並且對應的列有相容的資料型別。

python列表的交 並 差集

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作 a.sort reverse true b sorted a,reverse false usr bin env python3 l1 1 2 3 ...

Python中list的交 並 差集獲取方法示例

1.獲取兩個list 的交集 coding utf 8 方法一 a 2,3,4,5 b 2,5,8 tmp val for val in a if val in b print tmp 2,5 方法二 print list set a intersection set b 2.獲取兩個list 的並...

Linux實現檔案內容去重及求交並差集

一 資料去重 日常工作中,使用hive或者impala查詢匯出來可能會存在資料重複的現象,但又不想重新執行一遍查詢 查詢時間稍長,匯出檔案內容多 程式設計客棧,因此想到了使用linux命令將檔案的內容重複資料進行去除。案例如下 可以看到aaa.txx有3條重複資料 想去掉多餘的資料,只保留一條 so...