SQL distinct 只显示一个字段问题

例:
数据库 ceshi
a1 a2
1 a
1 b
2 c
3 c

select distinct a1 from [ceshi]

这样结束 只显示 A1列

我的目的是

查询 a1 字段中不重复的所有记录 并 A2字段里也显示出来。。

sql 的 distinct ,作用是去除结果集中的重复值。


例1:



例2:



温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-12
SELECT * FROM CESHI QUALIFY ROW_NUMBER() OVER(PARTITION BY A1 ORDER BY A2 desc)=1
查询结果是按A1字段分组,A2字段降序排列取第一条,不知道是不是你想要的效果
第2个回答  推荐于2016-03-25
select * from 表名 where a1 in (
select distince a1 from 表名 )本回答被提问者采纳
第3个回答  2009-08-11
2 c
3 c

这是不是你要的结果?

select *
from table1
where a1 in
(
select a1
from table1
group by a1
having count(*)=1
);

如果还要显示出一条a1=1的记录,那么要看你是想保留a2=a还是a2=b的记录
第4个回答  2009-08-11
select distinct a1,a2 from [ceshi]
select * from [ceshi] where a1 in (select distinct a1 from [ceshi])

这两个的结果是一样的啊

sql 取不重复的值,Distinct只能取一个字段满足不了要求
假设 uid+tid+lb+px具有唯一性。这里lb限制为1-5 (你应该提供字段描述,实际上从途中看出,uid+tid+px是唯一的,uid+tid相同的lb都相同,px递增)select * from 图库表 where (tid,uid,lb,px) in (select tid,uid,lb,min(px) from 图库表 where uid=55 and lb between 1 and 5 and ...

sql语句重复的字段只显示一次
select distinct 字段名 from 表名 where 条件。

SQL里的DISTINCT后面只能跟一条字段名吗?
这个问题不好解决 1.因为你的ds还要用到 id content 这样必须要在sql语句里出现这两个字段,不能只有title.2.当sql中有这些字段时,distinct是过滤它后面的所有列(字段),这么多字段中只要有一个字段的内容是不同的,哪怕别的字段都相同,都视为不相同的一条记录,所以,想要过滤title是满足不了要求的...

SQL语句重复的只显示一条
select username,max(col1) col1,max(col2) col2 from userpc group by username order by id desc col1和col2都是你表中的字段名,因为不确定你有几个字段,所以如果有其他字段你自己补充

SQL 语句 查询指定字段相同的只显示一条单据
可以通过分组来实现去除重复行,distinct是对查询结果后的去重,效率很低,不建议使用,你想要根据某个字段去除重复行,就必须明白对其他行进行什么样的聚合,比如说学生成绩表,你想查看每个班级的平均分数,那么就应该对学生的成绩做sum()聚合,然后根据班级来分组,现在你想对orderno做分组,就要考虑...

SQL重复数据只显示一条,查询语句怎么写
SELECT DISTINCT * FROM 表名

MySQL_select distinct无法实现只对单列去重,并显示多列结果的解决方法...
好像看明白它的作用结果了,只有id和value两个字段同时重复时,select distinct语句才会把它列入“去重”清单 所以能看到id为3和4的value虽然都是4,但由于select语句中写了id字段,它也默认会对id字段起效。而且如果sql语句中把DISTINCT放到只想起效的字段前,那也是不行的...比如sql语句改为:会提示sq...

SQL 相同记录,只显示一条。
你用join连表的话,楼上的distinct就不妥了。你首先要确定你用来join的字段是否在每一个表里都唯一,如果不唯一,自然会出现这种情况。这要么是表设计的问题,要么是你在join表的时候,用了不合适的字段。

关于sql语句的问题,实现相同的数据只显示一个!
可以用GROUP BY 如:select t.a from xxxx t GROUP BY t.a 或者 select distinct(t.a) from xxxx t 都可以去除重复

SQL检索,但检索结果中有某字段内容重复的数据只保留1条显示
--判断一个字段重复就只显示一条,用distinct是不行的,可以用row_number()根据这个字段分组显示优先级,然后只取每个组的第一条select * from(select *,row_number() over(partition by 判断重复的字段名) as f_id from 表名) twhere f_id =1 ...

相似回答