我正在 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 是什么?
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 MINUS(EXCEPT在 SQL Server 中)是完全不同的动物:)
如果你理解UNION然后思考,你就会理解MINUS/EXCEPT
| 归档时间: |
|
| 查看次数: |
24401 次 |
| 最近记录: |