sql - 为什么“联合所有”不符合我的预期?
问题描述
我为不同的日期范围创建了 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 条记录。
我究竟做错了什么?
解决方案
解决问题的一种方法是识别一些丢失的记录,并查看那些可能导致它们被遗漏的数据的不同之处。AUNION ALL
应该包括重复的记录,所以重复不应该是问题。也许有一些数据问题导致这些记录被删除。此外,我假设基础表中的 Views 没有任何有趣的业务,并且没有数据加载会影响您的记录数。
推荐阅读
- c - 如何用数字替换文件中连续出现的字符
- angular - ngx-countdown (finished) 事件未触发
- excel - 如何让单元格以交互方式更改 Google 表格/Microsoft Excel 中的值?
- javascript - 图片边框不显示
- django - 当我尝试集成 pythonBB 时出现 RuntimeError
- go - 如何解析多个对象的引用
- apache-spark - 如何将sqlserver中的十六进制日期值转换为sparksql中对应的数据格式
- java - 为什么我的确定按钮的警报对话框仍然可以单击,如果数据库中没有帐户,我已经添加了 if else 登录语句仍然可以单击按钮确定?
- vba - CDO.Message 不发送电子邮件
- c++ - 如何递归地将参数绑定到函数?