① 求个sql语句啊 在系统数据库中查询出所有重名并且手机号码一样的用户
很简单,无需使用高级函数即可实现,假设你的表是用户表,表中有姓名和电话两列:
select 姓名,电话,count(*) as '条数' from 用户表
group by 姓名,电话
having count(*)>1
即可找出用户姓名,电话,以及重复条数。
如果高级一点的,可以使用开窗函数,进行组内排名,比如使用rank函数也可以实现。
② 写一条sql语句,查询出员工姓名重复的员工,显示人员姓名、重复条数,并且按重复条数排序。。
select empName , count(empName)
from pubEmp
group by empName
having count(empName)>1
order by count(empName) desc
③ sql ,将表中‘姓名’字段数据相同的添加1.2.3.....
你的序号列应该是以此递增的吧.
思路: 查姓名与当前行姓名相同的记录数. 如果是1,表示当前是第一个此行名,不用处理,如果是大于1,就加上比当前序号小的姓名相同的总个数就是你要的结果.
update 表名
set 姓名=
姓名+case when (select count(*) from 表名 a1 where a1.姓名=表名.姓名)>1 then cast((select count(*) from 表名 a1 where a1.姓名=表名.姓名 and a1.序号<=表名.序号) as varchar(10)) else '' end
④ sql语句中怎样查询学生表中所有有着相同的名字的人的信息
方法一:select *from 学生表
where name in 姓名
方法二:
selecct 姓名
from 学生表
group by 姓名
having count(*)>1
如果 having 子句不加,则是统计各名字的数量,加上则只显示 数量大于 1 的人名。
(4)sql姓名相同的用户数扩展阅读:
sql 学生表中如何查询与某同学同年的人
SELECT*FROM学生表T1
WHERE EXISTS(SELECT1
FROM学生表T2
WHEREYEAR(T1.生日) = YEAR(T2.生日)
AND 学生编号 = '某同学学生编号')
YEAR是取datetime类型数据的年部分的函数,只要表中的数据存在年份和某学生生日的年份相同就可以。
⑤ sql怎样统计不同用户登录的相同次数的用户数
1000个用户中:
0次登陆的用户数990
1次登陆的用户数2
5次登陆的用户数5
7次登陆的用户数3
-------------------------------------------------
用户表users结构:
用户名 密码 login
------------------------------------------------
原理:最低用户登陆的次数为0,最大为MAX所返回的值。顺序查询登陆次数相同的用户数,是用Count函数得出。依次输出结果。
declare @tmax int,@tmin int
set @tmax=(select max(login) from users)--获取登陆最大次数
set @tmin=(select min(login) from users)--获取登陆最小次数,可选语句,或设置为0
--循环统计结果
--set @tmax=125
print '最小登录次数为'+Convert(varchar,@tmin)
print '最大登录次数为'+Convert(varchar,@tmax)
print '--------------明细-------------------'
declare @current int,@countUser int
set @current=@tmin;
While(@current<=@tmax)
Begin
Select @countUser=Count(*) From users Where login=@current --查登陆次数为current的用户数
if(@countUser>0) print Convert(varchar,@current)+'次登陆的用户数'+Convert(varchar,@countUser)
--上一个语句只输出有意义的数据结果
set @current=@current+1
End
⑥ oracle 数据库中以下几个题的sql语句
1\SELECT TO_CHAR(REGISTER, 'YYYYMM') AS MONTH, COUNT(*) FROM A GROUP BY TO_CHAR(REGISTER, 'YYYYMM');
2\SELECT COUNT(*) FROM (SELECT NAME FROM A GROUP BY NAME HAVING COUNT(*) > 1);
3\INSERT INTO C
SELECT A.ID, A.NAME
FROM A
INNER JOIN (SELECT NAME FROM A GROUP BY NAME HAVING COUNT(*) > 1) B ON A.NAME = B.NAME;
4\SELECT MAX(REGISTER), ID, NAME
FROM A
GROUP BY ID, NAME;
⑦ 现在有个表:A,B,C进行相应的查询
SQL SERVER 测试
1.
select count(*) from A where ‘起始年月’< regdate and redate < '终结年月'
2.
select count(name) from A having count(name)>1
3.
insert into C (id,name2) select newid(),select A.name from A group by A.name
4.
delete A a1 where a1.regdate < (select max(regdate) as maxDate from A a2 group by a2.name) and a1.name = a2.name
⑧ 写一个sql 查询一个表中姓名相同的记录,并把数据按照重复的次数从高到低排列显示
select姓名列,count(1)as[重复次数]from表名groupby姓名列havingcount(1)>=2orderby重复次数desc
⑨ sql语句中在学生信息表中查询同姓的学生姓名
1.创建一个测试表,如下图
createtabletest_name(idint,namevarchar2(20));
注意事项:
SQLServer的特点如下
1.具有真实的客户端和服务器架构架构。
2.图形用户界面使系统管理和数据库管理更加直观。
3.丰富的编程接口专用工具,为用户进行程序设计提供了更多的选择。
4.它是完全集成的,利用了NT的许多功能,比如发送消息和接收消息。
⑩ 怎样让相同姓名的sql表合并,并且计算出每个用户的总收益
--用分组group by ,按姓名分组,然后用sum()函数计算合计收益,最后用order by 按姓名做个排序,这个排序可有可无不影响。
select用户姓名,sum(点击数)as总点击数,sum(收益金额)as总收益--计算收益
fromtable--这个是你的表名
groupby用户姓名--按姓名分组
orderby用户姓名