簡體   English   中英

Redshift SQL:檢查相同的一組值是否在表的兩個不同列中

[英]Redshift SQL: Check if same set of values are IN and NOT IN two different columns of table

我正在一個大型 Redshift 表(PB 級)上運行查找,其中一組 5,000 個名稱位於名為 BUYERS 的列中,而不位於名為 SELLERS 的列中。 目標是排除購買是內部轉移的行(即買方不是賣方)。

我很好奇是否有比以下簡單的更有效的方法

buyers in ('EXAMPLE 1','EXAMPLE 2') and sellers not in ('EXAMPLE 1','EXAMPLE 2')

“WHERE NOT IN”可能會導致執行效率低下,但這太簡單了,我希望 Redshift 查詢編譯器應該優化此代碼。 如果“IN”列表變長,這會變得非常慢。 一般來說,“WHERE NOT EXIST”比“WHERE NOT IN”更有效,但同樣在這個簡單的情況下,它應該是值得注意的。

對於這么簡單的事情(2 個值),您可以嘗試 -

buyers in ('EXAMPLE 1','EXAMPLE 2') and sellers <> 'EXAMPLE 1' and sellers <> 'EXAMPLE 2'

看看是否有任何加速。 我希望這沒有區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM