从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数据集都合并到一个表中。