在SQL中获取两个计数的差异

Ron*_*del 3 sql netezza

我正在 Netezza 中进行一些 QA,我需要比较两个单独的 SQL 语句的计数。这是我当前使用的 SQL

SELECT COUNT(*) AS RECORD_COUNT  
FROM db..EXT_ACXIOM_WUL_FILE  A
LEFT JOIN (select distinct CURRENTLY_OPTED_IN_FL,mid_key from db..F_EMAIL) B
ON A.MID_KEY=B.MID_KEY
MINUS
SELECT COUNT(*)
FROM db..EXT_ACXIOM_WUL_FILE  A
Run Code Online (Sandbox Code Playgroud)

然而,看起来 MINUS 并不是这样工作的。当计数匹配时,Record_count 将返回 null,而不是返回 0。我基本上将记录数计算为:

record_count=count1-count2
Run Code Online (Sandbox Code Playgroud)

因此,如果计数相等则为 0,否则为差。正确的 SQL 是什么?

Adr*_*iro 6

SELECT
(
SELECT COUNT(*) AS RECORD_COUNT  
FROM db..EXT_ACXIOM_WUL_FILE  A
LEFT JOIN (select distinct CURRENTLY_OPTED_IN_FL,mid_key from db..F_EMAIL) B
ON A.MID_KEY=B.MID_KEY
)  -
(
SELECT COUNT(*)
FROM db..EXT_ACXIOM_WUL_FILE  A
) TotalCount
Run Code Online (Sandbox Code Playgroud)

Oracle MINUSEXCEPT在 SQL Server 中)是完全不同的动物:)

如果你理解UNION然后思考,你就会理解MINUS/EXCEPT