首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么联合都没有充分去重?

问为什么联合都没有充分去重?
EN

Stack Overflow用户
提问于 2018-04-19 02:37:45
回答 1查看 38关注 0票数 0

我有28个固定宽度的文件,我分解后导入到SQL中。为了方便起见,我将它们称为industry1 to industry28。通过在excel中检查,我发现总共有38,700行,有1257个重复项。副本将以某种随机的方式出现。

行业表有28个字段,其中有9个字段的复合主键。重复项是整行的(全部28个字段)。

当我尝试使用UNION ALL (下面的例子)时,它只删除了28个重复项。有人能解释一下为什么会这样吗?

代码语言:javascript
复制
 Select field1, field2...from industry1
 UNION ALL
 Select field1, field2...from industry2
 UNION ALL
 Select field1, field2...from industry3
 ... and so on
EN

回答 1

Stack Overflow用户

发布于 2018-04-19 02:43:08

如果您希望从查询中消除重复行,则应该使用UNION而不是UNION ALL。UNION本质上为您提供了DISTINCT结果集,如果您不介意重复或想要稍微快一点的执行速度,那么UNION ALL将是一个更好的选择。

来自谷歌:

UNION ALL命令与UNION命令相同,不同之处在于UNION ALL选择所有值。Union和Union all之间的不同之处在于,Union all不会消除重复的行,而只是从符合查询条件的所有表中提取所有行,并将它们合并到一个表中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49906787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档