使用count 和distinct(去重)关键字可以查看数据库某列是否有重复项。例如:
select count(discinct(colunmname)) from table_name;
如果上述查询统计结果大于count(colunmname),则代表这一列有重复项。
(1)sqldistinct统计扩展阅读
SQL SELECT DISTINCT 语句用法介绍:
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称
使用 DISTINCT 关键词,例如要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:
SELECT Company FROM Orders
❷ SQL中select语句跟“distinct”这个参数有什么作用
distinct如果紧跟在Select之后, 则: 如果Select结果中出现重复行,则重复行只保留一行
distinct如果出现在集函数中,则统计时重复值只记一次.
distinct是关键字
❸ SQL中distinct的用法是什么
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。
表A:
返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。
3.COUNT统计
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持
count是不能统计多个字段的,下面的SQL在SQL Server和Access中都无法运行。
select count(distinct name, id) from A;
若想使用,请使用嵌套查询,如下:
select count(*) from (select distinct xing, name from B) AS M;
4.distinct必须放在开头
select id, distinct name from A; --会提示错误,因为distinct必须放在开头
5.其他
distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论
❹ sql:关于distinct的用法
不分先后的。因为distinct都是用在查询上面的,直接查询出来就行了
比如:重复出现重复数据的字段name
select *, count(distinct name),count(name) from table group by name
查询出所有字段的信息外还有“结果中该字段内容出现数量”、“去除重复前字段内容出现数量”.这样使用应该能看懂吧。
❺ SQL 语句select count(distinct (aa)) from table1
distinct
去重后再进行count
求条数,结果当然是1了,因为distinct
-1.2表示去除表中所有重复的为-1.2的数据,而count
()是进行条数统计,所以最后无论是那个数,结果都会是1
❻ SQL语句中的 Distinct 和 Group by 有什么不同,用那个好
两个意义不同,前者只是排除重复项,即关键字相同的几条记录只显示一条,而Group
by
品名,单位是把
品名,单位相同的项进行小计
一个有计算小计的作用,一个没有,怎么会一样呢?
如果你仅仅要求去掉重复记录,确实看不到区别,但如果需要计算就看出区别了。
❼ 求助 sql server分组统计问题
你是来搞笑的么。。。。。
两个语句中最后面的一个左连是费的。
上面的语句用he.idISNOTNULL做where条件,又用he.id排序。但是he.id本来就等于h.ORDERED_DOCTOR_ID
hrm_employee这个员工表属于基础信息,正常价格是不带delete功能的。所以根本没必要存在。这个连表。
然后就是解决你上面会上面和下面两个SQL不一致的问题了
问题出现再你h和d两个联表上。从你第一段SQL看出,S_ZYFYLB_DM是复数存在的,也就是有笛卡儿积。然而你“参与列数”字段居然加了 distinct 这个关键字。
distinct是全部列数数据相同才会触发唯一机制。所以你第一个SQL的distinct触发无效。
第二个SQL只有COUNT统计,肯定能触发distinct了。
所以就变成总行数有差异了。
❽ sql语句distinct 和sum()该怎么求分类汇总
select 名称 , 分类 ,sum( 重量) as 重量 from 表1
group by 名称 , 分类
这样就可以了。
❾ ACCESS中的SQL语句count(distinct(字段名))问题
你这个问题我测试过,access
里面的distinct是不能这样是用的啊!
我测试用group
by
试过,可以分类统计.
select
count([
字段名
])
as
[字段名]
from
[表名]
group
gy
[字段名]
完全可以出你想要的结果!
❿ sql统计不重复数据
selectcount(凭证号)as个数from
(selectdistinct凭证号from帐本数据where平衡表用分录='经费支出'and发生月=1)
祝你成功!