mysql语句 查询某列中不重复数据的所有项 您所在的位置:网站首页 mysql查询重复数据sql mysql语句 查询某列中不重复数据的所有项

mysql语句 查询某列中不重复数据的所有项

2023-05-14 03:23| 来源: 网络整理| 查看: 265

需求说明

1、我需要查询某列不重复的数据

2、并且显示不重复数据的所有项

sql语句如下

select * from data group by address

如果是仅仅查询某列不重复数据,只需要一列

效果如下

sql语句

select DISTINCT address from data

这里有一个非常非常需要注意的地方:

        SELECT DISTINCT [字段名]后面不能再跟其他的字段,否则检索出来的记录仍然会含有重复项;

        错误写法:

            SELECT DISTINCT [字段名] ,[其他字段名] FROM [表名] WHERE [检索条件字句]

如果我们的记录集里还需要有其他字段值 ,那怎么办呢?

实际上,我们完全可以用另一种办法来解决问题只是需要用到子查询而已!

使用GROUP BY 分组

有一点需要注意:

使用带有GROUP BY字句的查询语句时,在SELECT列表指定的列要么是GROUP BY 指定的列,要么包含聚合组函数

所以用这样一句SQL就可以去掉重复项了:

select * from msg group by terminal_id

这样就得到我们想要的结果集了:

1、创建测试表,

create table test_dis(id number, name varchar2(20), value number(10))

2、插入测试数据

insert into test_dis values(1,'a',123)

insert into test_dis values(2,'b',152)

insert into test_dis values(3,'c',123)

insert into test_dis values(4,'d',520)

insert into test_dis values(5,'e',300)

commit

3、查询表中全量数据,select t.*, rowid from test_dis t

4、编写sql,查询表中某一字段不重复的所有数据,可以发现只有id为2,4,5的记录查询出。

 select * from test_dis t where value in (select value from test_dis group by value having count(*)=1)

select t.* from 表 t

where exists(select * from 表 a where a.第二列 = t.第二列 group by a.第二列 having count(a.第二列) = 1)

你测测吧,给个采纳就行了。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/sjk/10647785.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有