sql 怎么取不重复的数据的所有数据

如题所述

SQL数据重复分几种情况,一种是原数据重复,第二种是粒度重复,第三种是分布重复。

原数据重复的情况,你直接可以distinct掉,例如,学生表当中有两个重复的学号,你想取出不重复的,直接可以写:select distinct 学号 from 学生表
第二种是查询粒度重复,比如你有一张表是存储区域的,分别为省、市、县三列。而你需要的是只查找不同的省市,则也可以使用distinct:select distinct 省,市 from 区域
第三种则是分布重复,比如在join 的时候,左右两个表格存在一对多的关系,造成的重复,或者在聚合之后出现了维度重复,则这种相对来说比较麻烦,你需要在子查询中统计或查找出唯一值,然后再去关联,或者是按照一定的数据需求的取数规则,在查询结果后再进行聚合,取到唯一值。
不过不管怎么样,都是要看实际需求是什么样子的。大多可以用子查询和关联联合解决。
温馨提示:答案为网友推荐,仅供参考
相似回答