在SQL Teradata中单独运行表还是一起运行表时,如何确定行数总和不同?

时间:2019-05-06 16:05:21

标签: sql teradata teradata-sql-assistant

从Teradata中的药品清单中提取药物时,我遇到了数学差异问题。 总和应该是相同的,但是不是一样的,我很难弄清楚为什么。我运行的代码在两个测试中都是相同的,除了在一个测试中,我对运行两个单独的表的总行进行求和,而在第二个测试中,我从这两个表中提取了所有行。 我需要更改哪些代码才能正确汇总结果?

我尝试使用SELECT DISTINCT来查看总和是否仍然存在差异。

-- this is the first table --
CREATE VOLATILE MULTISET TABLE
drug_pull_ACE_ARB AS (
SELECT 
dd.product_name

FROM dim_drug dd

WHERE product_name (NOT CS) LIKE 'Aliskiren%' 
OR product_name (NOT CS) LIKE 'Valsartan%'
-- list of OR instructions
WITH DATA PRIMARY INDEX(product_name)
ON COMMIT PRESERVE ROWS;
-----------------------------------

-- this is the second table --
CREATE VOLATILE MULTISET TABLE
drug_pull_diuretic AS (
SELECT 
dd.product_name

FROM dim_drug dd

WHERE product_name (NOT CS) LIKE 'Amiloride-hydrochlorothiazide%' 
OR product_name (NOT CS) LIKE 'Amlodipine-hydrochlorothiazide-olmesartan%'
-- list of OR instructions
WITH DATA PRIMARY INDEX(product_name)
ON COMMIT PRESERVE ROWS;
-----------------------------------

-- this is the complete table pulling all data --
CREATE VOLATILE MULTISET TABLE
complete_drug_pull AS (
SELECT 
dd.product_name

FROM DIM_DRUG dd

WHERE product_name (NOT CS) LIKE 'Aliskiren%' 
OR product_name (NOT CS) LIKE 'Valsartan%' 
--list of ALL of the OR instructions from BOTH tables


WITH DATA PRIMARY INDEX(product_name)
ON COMMIT PRESERVE ROWS;

我希望两个单独的表行的总和与整个表中的总行数相同。但这是实际的行号:

-如果将两个单独的表加在一起,则为9,623行。

-如果将两个数据集合并到一个表中,则为8,935行。

-所有表中的SELECT DISTINCT都一样,

-如果将两个DISTINCT单个表加在一起,则为75行,

-66,如果将两个DISTINCT数据集都合并到一个表中。

0 个答案:

没有答案