① 求個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用戶姓名