sql去除重复的项
有个表abc123135246138selectdistinctb,a,cfromtable我是这样写的,但是查询出来的数据得不到abc123135246而是把所有的数据...
有个表
a b c
1 2 3
1 3 5
2 4 6
1 3 8
select distinct b,a,c from table
我是这样写的,但是查询出来的数据得不到
a b c
1 2 3
1 3 5
2 4 6
而是把所有的数据都输出来,我想问问这是怎么回事的? 展开
a b c
1 2 3
1 3 5
2 4 6
1 3 8
select distinct b,a,c from table
我是这样写的,但是查询出来的数据得不到
a b c
1 2 3
1 3 5
2 4 6
而是把所有的数据都输出来,我想问问这是怎么回事的? 展开
6个回答
展开全部
首先你是要去除,也就是说删除数据,还是只是查询不重复数据,如果是删除重复数据 就不该用select;暂且认为 你是查询数据;
其次,你的意思应该是去除 b 列中重复的数据,但是你没给定 确切的条件,比如,b列出现了重复数据,那你是要保留那一条呢,
再就是你那个查询:select distinct b,a,c from table 的意思是将三列 都重复的去除,只有三列都重复了 才会去除。你这里的数据明显 不存在三个列都重复的数据,所以查询 出来的还是原 表中的数据。
其次,你的意思应该是去除 b 列中重复的数据,但是你没给定 确切的条件,比如,b列出现了重复数据,那你是要保留那一条呢,
再就是你那个查询:select distinct b,a,c from table 的意思是将三列 都重复的去除,只有三列都重复了 才会去除。你这里的数据明显 不存在三个列都重复的数据,所以查询 出来的还是原 表中的数据。
展开全部
distinct 是三个字段不同时重复
也就是假如有两条1 2 3 ,那么最后只输出一条,可你的原本数据本来就是不完全重复的呀
看你的意思,你是想把a,b重复的只选出一条来吗?
试试这样
select a,b,min(c) from table group by a,b
也就是假如有两条1 2 3 ,那么最后只输出一条,可你的原本数据本来就是不完全重复的呀
看你的意思,你是想把a,b重复的只选出一条来吗?
试试这样
select a,b,min(c) from table group by a,b
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
distinct b,a,c ------是将b a c完全相的记录只取一条,你的数据里根本没有完全相同的记录,所以会全部输出;
你要的数据可以用下面的sql
select * from (select t.*,row_number() over(partition by b order by b) numid
from table t) a where a.numid=1;
你要的数据可以用下面的sql
select * from (select t.*,row_number() over(partition by b order by b) numid
from table t) a where a.numid=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设存在一个主键ID,Name为重复列,下面这句可以查出所有的没有重复的数据:
select * from 表 as a where ID=(select min(ID) from 表 where Name=a.Name) 。
根据上面这句就可以删除所有重复项的数据:
delete from 表 where ID not in(select ID from 表 as a where ID=(select min(ID) from 表 where Name=a.Name))。
性能特点:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
废话不多说直接上答案:
select 【字段名】【字段名】.... from 【表名】t where t.id in (select max(t.id) from 【表名】t group by 【不重复的字段名】)
select 【字段名】【字段名】.... from 【表名】t where t.id in (select max(t.id) from 【表名】t group by 【不重复的字段名】)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询