• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

急求sql语句(过滤重复数据)

左手冰凉_nj 2013-11-05 02:31:23
字段1 字段2 字段3

现在字段1 和字段2 有重复数据 但是 字段3 缺不全是重复数据
先前我只需要查询字段1和字段2的数据 并且过滤掉重复数据是这样
select distinct 字段1,字段2 from tableName
但是现在需要增加字段3 这样该怎么写
...全文
1789 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
左手冰凉_nj 2013-11-05
十分感谢各位 问题解决了 谢谢
回复
唐诗三百首 2013-11-05
引用 5 楼 u012479410 的回复:
取一条字段3最小的

select 字段1,字段2,字段3 from
(select 字段1,字段2,字段3,
        row_number() over(partition by 字段1,字段2 order by 字段3) 'rn'
 from [表名]) t
where t.rn=1
回复
發糞塗牆 2013-11-05
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-11-05 14:43:40
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
--	Dec 28 2012 20:23:12 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([字段1] int,[字段2] int,[字段3] int)
insert [huang]
select 1,1,2 union all
select 1,1,3 union all
select 2,2,3 union ALL
select 2,2,4
--------------开始查询--------------------------

select * 
from [huang] a
WHERE EXISTS (SELECT 1 FROM (SELECT [字段1],[字段2],MIN([字段3])[字段3] FROM huang GROUP BY [字段1],[字段2])b 
WHERE a.[字段1]=b.字段1 AND a.[字段2]=b.字段2 AND a.[字段3]=b.[字段3])
----------------结果----------------------------
/* 
字段1         字段2         字段3
----------- ----------- -----------
1           1           2
2           2           3
*/
回复
--小F-- 2013-11-05
select 字段1,字段2,min(字段3) as 字段3 from group by 字段1,字段2
回复
發糞塗牆 2013-11-05

select * 
from [huang] a
WHERE EXISTS (SELECT 1 FROM (SELECT [字段1],[字段2],MAX([字段3])[字段3] FROM huang GROUP BY [字段1],[字段2])b 
WHERE a.[字段1]=b.字段1 AND a.[字段2]=b.字段2 AND a.[字段3]=b.[字段3])
回复
左手冰凉_nj 2013-11-05
取一条字段3最小的
回复
左手冰凉_nj 2013-11-05
引用 2 楼 DBA_Huangzj 的回复:
字段1,字段2 ,字段3 1 1 2 1 1 3 这种数据你取哪条?
只需要取一条就可以了
回复
唐诗三百首 2013-11-05
try this,

select 字段1,字段2,字段3 from
(select 字段1,字段2,字段3,
        row_number() over(partition by 字段1,字段2 order by 字段3) 'rn'
 from [表名]) t
where t.rn=1
回复
發糞塗牆 2013-11-05
字段1,字段2 ,字段3 1 1 2 1 1 3 这种数据你取哪条?
回复
select distinct 字段1,字段2,字段3 from tableName
回复
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2013-11-05 02:31
社区公告
暂无公告