‘壹’ sql查询按两个字段查询重复记录
用关键字 stinct,select stinct 字段,是不重复的意思。代码的实例如下:
查询order_id和loan_lind两个字段相同的记录:
select distinct a.order_preview_id, a.order_id, a.loan_kind
from ddk_order_preview_info a
join ddk_order_preview_info b
on a.order_preview_id != b.order_preview_id
where a.order_id = b.order_id and a.loan_kind = b.loan_kind;
(1)sql两个字段重复扩展阅读
SQL数据库查询出一张表中重复的数据,按某个字段来查找的实例:
例如表名为Course:
补充:
如:查询每个姓名出现大于2次,SQL如下
SELECT COUNT(NAME) as '出现次数', NAME FROM 表名
GROUP BY NAME HAVING count(NAME) > 2 ORDER BY 出现次数 DESC
‘贰’ 如何用sql 查找两个字段重复的记录,并列出重复记录
如何用sql 查找两个字段重复的记录,并列出重复记录
select *
from shiyan003 a
where exists (select 1
from (select xm, sfzhm
from shiyan003
group by xm, sfzhm
having count(*) > 1) s
where s.xm = a.xm
and s.sfzhm = a.sfzhm)
‘叁’ sql怎么同时去掉两个字段的重复
select max(id),uid, username from tables group by uid, username 这句是正解。
看到你的补充,我想问一下,如果你想要得到所有的ID值也就是123,那么1和3是重复的,而你又不想要,那么,3的地方填什么?空吗?
‘肆’ 如图,sql server两个字段都相同的话即为重复,查询时怎么去重复
假设有下列一张表:
--去掉重复的记录
selectID,Code,ColorNumfrom
(
SELECT
ROW_NUMBER()OVER(
PARTITIONBYCode+ColorNum
ORDERBYCode+ColorNum
)rn,
ID,Code,ColorNum
FROMTwoColumns
)a
where
a.rn=1
orderbyID
‘伍’ sql语句如何查询一个表中某两个字段的相同数据
查询一个表中某两个字段的相同数据代码是:Select Name,ID From A group by Name,ID having count (*)>1。
结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
sql 语句就是对数据库进行操作的一种语言。
sql="select * from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列,默认升序ASC);
sql="select * from 数据表 where字段名like '%字段值%' order by 字段名 [desc]";
sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]";
sql="select top 10 * from 数据表 order by 字段名 [desc]";
sql="select * from 数据表 where字段名in ('值1','值2','值3')";
sql="select * from 数据表 where字段名between 值1 and 值2"。
sql语句:
更新:update table1 set field1=value1 where 范围;
查找:select * from table1 where field1 like '%value1%' (所有包含'value1'这个模式的字符串);
排序:select * from table1 order by field1,field2 [desc];
求和:select sum(field1) as sumvalue from table1;
平均:select avg(field1) as avgvalue from table1;
最大:select max(field1) as maxvalue from table1;
最小:select min(field1) as minvalue from table1[separator]。
‘陆’ sql语句,在同一张表中筛选出重复的行 至少 2个字段都是重复的行,这个语句应该怎么写
SELECT t.* FROM 表1 t1
INNER JOIN
(
select
字段1,字段2
from 表1
group by 字段1,字段2
having count(字段1)>1
) t2
ON t1.字段1=t2.字段1
AND t1.字段2=t2.字段2
‘柒’ SQL 语句查询同一字段中重复的2个以上同时存在的数据
select 收费项目名称,count(*) from tab
group by 收费项目名称
having count(*) >= 2
‘捌’ sql两个表,两个字段中有一个相同,就把它们列出来
可以用exists子句实现,如select * from tablea a where exists (select 1 from tableb b where b.身份证=a.身份证)or
exists (select 1 from tableb c where c.手机号=a.手机号)
‘玖’ sql查询两个字段相同的记录
EXCEL中用VBA连接ACCESS数据库
有如下一张表,要分别查找出所有同名的人、所有同名并且学号也一样的人以及所有同名但不同学号的人。
查询所有同名人员
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1)
查询结果:
查找所有姓名和学号两个字段都重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
查询结果:
查找所有姓名重复但学号不重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] not in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
注意:要把SELECT查询子句配合in或not in 操作符使用,SELECT查询子句只能有一列内容。
查询结果:
其中子句 “SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1”是显示所有重复的姓名,如果如下:
如果要知道重复出现次数,则可以这样写:
SELECT [姓名],count(姓名) as 出现次数 FROM [18年考试成绩] group by [姓名] having count(姓名)>1
结果如下:
查找唯一记录
group by [姓名],意思是按姓名分组,having count(姓名)>1 是分组条件,意思是姓名次数出现2次以上的重复内容以姓名进行分组,前面的count(姓名)是对分组以后的姓名统计出现次数。在后面要使用函数条件时应该使用having,而不是使用where
查找唯一值,比如本例的班级中,只有一个“四班”,要把这个四班的所有字段显示出来可以这样:
select * from [18年考试成绩] where 班级 not in (SELECT 班级 FROM [18年考试成绩] group by 班级 having count(班级)>1)
结果:
如果使用“SELECT DISTINCT 班级 FROM [18年考试成绩]”语句查询唯一值,结果将会如下:
DISTINCT 会显示不重复的值,如果有重复的,只显示第一个,所以如果需要显示仅出现一次的值并不适合使用SELECT DISTINCT语句
分组查询语句:
比如要班级为单位,查询每个班的总人数,科目总分,科目平均分等
SELECT [班级],count(姓名) as 班级人数,sum(语文) as 语文总成绩,sum(数学) as 数学总成绩,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] group by [班级]
查询结果如下:
注意:如果使用函数的字段,不使用AS指定别名,将会自动生成一个字段名,第一列名字Expr1000,第二列名为Expr1001,第三列名为Expr1002,以此类推
如:
SELECT [班级],count(姓名),sum(语文),sum(数学),ROUND(avg(语文),1) ,ROUND(avg(数学),1) FROM [18年考试成绩] group by [班级]
查询结果如下:
如果不指定别名,你将无法清楚在查询结果中知道每一列是干什么的。
如果需要再细分,查询每个班女生总人数和科目平均分,只需要再加一个where条件就可以了
SELECT [班级],count(姓名) as 班级女性人数,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] where 性别='女' group by [班级]