首页 > 解决方案 > 为什么“联合所有”不符合我的预期?

问题描述

我为不同的日期范围创建了 2 个汇总表,形成相同的源数据。
既然我有这些多个汇总表,我想将这些表放在一起,以便能够在组合表上运行汇总。

它正在创建呈现问题的汇总表。

scratch.table_1 有 809,598 条记录。scratch.table_2 有 1,228,176 条记录。

它们都具有来自源表的相同字段集,以及我使用 count(1) 在每个表上创建的“record_number”字段。

我用来将这两个表放在一起的代码是:

create table scratch.table_1_and_2
select * from scratch.table_1
union all
select * from scratch.table_2

我假设新表中有 809,598 + 1,228,176 条记录(2,037,774 条记录)。但是新表中只有 1,960,769 条记录。

我究竟做错了什么?

标签: sqlunion

解决方案


解决问题的一种方法是识别一些丢失的记录,并查看那些可能导致它们被遗漏的数据的不同之处。AUNION ALL应该包括重复的记录,所以重复不应该是问题。也许有一些数据问题导致这些记录被删除。此外,我假设基础表中的 Views 没有任何有趣的业务,并且没有数据加载会影响您的记录数。


推荐阅读