sql left join多表查询,出现重复的数据使用distinct关键字可以去重。
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
2、然后在该界面中,点击左上角“新建查询”选项。
3、之后在该界面中,输入left join多表查询语句。
4、接着在该界面中,点击左上方“执行”按钮。
5、然后在该界面中,显示的数据结果有重复。
6、其次在该界面中,left join多表查询语句中加入distinct关键字。
7、接着在该界面中,点击左上方“执行”按钮。
8、最后在该界面中,显示重复的数据被去除。
DISTINCT 关键字可从 SELECT 语句的结果中消除重复的行。如果没有指定 DISTINCT,将返回所有行,包括重复的行。例如,如果选择 ProductInventory 中的所有产品 ID 时没有使用 DISTINCT,将返回 1069 行。\x0d\x0a\x0d\x0a如果使用了 DISTINCT,就可以消除重复的行,只查看唯一的产品 ID:\x0d\x0a \x0d\x0aUSE AdventureWorks\x0d\x0aGO\x0d\x0aSELECT DISTINCT ProductID\x0d\x0aFROM Production.ProductInventory\x0d\x0a\x0d\x0a此查询将返回 432 行。首先,先说明一个问题。这样的结果出现,说明系统设计是有问题的。
其次
删除重复数据,你要提供你是什么数据库。
不同数据库会有不同的解决方案。
关键字Distinct 去除重复,如下列SQL,去除Test相同的记录;
1. select distinct Test from Table
2. 如果是要删除表中存在的重复记录,那就逻辑处理,如下:
3. select Test from Table group by Test having count(test)>1
4. 先查询存在重复的数据,后面根据条件删除
还有一个更简单的方法可以尝试一下:
select aid, count(distinct uid) from 表名 group by aid
这是sqlserver 的写法。
如图一在数据表中有两个膀胱冲洗重复的记录。
2
可以通过sql语句“select *from 表名 where 编码 in(select 编码 from 表名 group by 编码 having count(1) >= 2)”来查询出变种所有重复的记录如图二
3
通过sql语句"
delete from 表名 where
编码 in(select 编码 from 表名 group by 编码 having count(1) >= 2)
and 编码 not in (select max(编码)from 表名 group by 编码 having count(1) >=2)
"来删除重复的记录只保留编码最大的记录
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)