当前位置:首页 » 编程语言 » sql查询字段相同

sql查询字段相同

发布时间: 2022-08-10 02:25:22

1. 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 [班级]

2. SQL 查询相同数据

select
*
from
(
select
a,b,c,d,count(a)
c
from
F
group
by
a,b,c,d)
tab
where
tab.c>1
这样就行了啊,还有重复的记录条数呢
楼下的更好些,select
*
from
F
group
by
a,b,c,d
having
count(*)>1
我没想到,呵呵

3. 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]。

4. SQL查询语句,怎样查询重复数据

1、第一步,打开数据库,并创建一个包含重复数据的新用户表,见下图,转到下面的步骤。

5. sql怎么查某个字段相同的数据

select
column_name,data_type
from
information_schema.columns
where
table_name
=
'table_1'
and
column_name='a'
如果把 and
column_name='a'
去掉,则会显示表的所有字段的数据类型

6. 如何用SQL语句查询两张表中的相同字段数据

假设表1位table1
,表2位table2
select
a.col
from
(select
column_name
col
from
user_tab_columns
where
table_name
=
'table1')
a
,
(select
column_name
col
from
user_tab_columns
where
table_name
=
'table2')
b
where
a.col
=
b.col
这样就可以查询出两个表得相同字段了

7. SQL查找某一字段相同,某一字段不同的数据

创建测试表

createtablet
(avarchar(10),
bint,
cvarchar(1))

insertintotvalues('张三',1,'Y')
insertintotvalues('张三',2,'Y')
insertintotvalues('张三',3,'N')
insertintotvalues('李四',1,'Y')
insertintotvalues('王五',1,'Y')
insertintotvalues('王五',2,'Y')

执行查询

selecta,MIN(b)b,cfromt
whereain
((distinctc)>1)
groupbya,c


结果

8. 怎么在sql中查找多个字段数据相同

做了一个简单的例子:
select
c1,
wmsys.wm_concat(c2)
from
(select
1
as
c1,
2
c2
from
al
union
all
select
1,
3
c2
from
al)
group
by
c1
那你的问题可以这样:
select
id,序列号,名称,位置,wmsys.wm_concat(端口)
from

group
by
id,序列号,名称,位置
这样就可以了,wmsys.wm_concat这个是类似字符串聚合函数的东东,一个缺点是重复记录不能太多.不然这个东西会放不下.(好像是varchar2(4000)的长度以内,这个东西也可以自己重写的,就没有这方面的限制了)
如果你的版本不支持的话,可以再聊,或者找下相关资料也可以.
希望对你有所帮助,祝你好运~~

9. 如何用sql语句查询两张表中的相同字段数据

select * from A inner join b on a.col=b.col

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行

热点内容
绿色商城源码 发布:2024-04-28 10:04:45 浏览:584
点歌机服务器是什么 发布:2024-04-28 10:04:43 浏览:738
ssi框架源码 发布:2024-04-28 09:32:56 浏览:722
用手机怎么查询服务器的ip 发布:2024-04-28 09:00:43 浏览:203
macps缓存 发布:2024-04-28 08:03:26 浏览:537
腾讯云服务器销售好做吗 发布:2024-04-28 08:03:23 浏览:586
编程的码 发布:2024-04-28 08:02:41 浏览:546
c封装数据库 发布:2024-04-28 07:59:27 浏览:683
CRT存储 发布:2024-04-28 07:57:42 浏览:137
硬阈值算法 发布:2024-04-28 07:52:31 浏览:869