SQLServer RANK()排名函数如何使用(rank(),sqlserver,开发技术)

时间:2024-04-28 15:57:34 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

具体如下:

--例子表数据SELECT*FROMtest;--统计分数SELECTname,SUM(achievement)achievementFROMtestGROUPBYname;--按统计分数做排行SELECTRANK()OVER(ORDERBYSUM(achievement)desc)排行,name,SUM(achievement)achievementFROMtestGROUPBYname;

SQLServer RANK()排名函数如何使用

求助问答存储过程使用:

USE[DB]GO/******Object:StoredProcedure[dbo].[sp_TodayJoinUser]ScriptDate:2021/1/2614:45:24******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author: _Hey_Jude--Createdate:2021-01-26--Description: 获取今日发表帮助/回复的新用户--=============================================CREATEPROCEDURE[dbo].[sp_TodayJoinUser] @tableLevelint,@datevarchar(30)ASDeclare@Sqlnvarchar(max)declare@minTabIdintdeclare@maxTabIdintdeclare@maxf_idintdeclare@helpTableNamenvarchar(max)declare@tableCountintBEGIN --最小f_id所在表 set@minTabId=0 set@tableCount=@minTabId --最大f_id所在表 set@maxf_id=(selectMAX(F_ID)from[Table]whereF_IsDelete=0) set@maxTabId=@maxf_id/@tablelevel set@helpTableName='SELECTUserID,Max([F_DateTime])ASdtFROM[Table]GROUPBYUserID' while@tableCount<=@maxTabId begin print@tableCount set@helpTableName+='UNIONSELECTUserID,Max([DateTime])asdtFROMSubTable'+cast(@tableCountasnvarchar(10))+'GROUPBYUserID' set@tableCount=@tableCount+1 endset@Sql='SELECT[nikename]FROM( SELECTUserID,RANK()OVER(PARTITIONBYUserIDORDERBYdt)ASNum,dtFROM('+@helpTableName+')AST)ASNewT LEFTJOIN[UserTable]AWITH(NOLOCK)ONNewT.UserID=A.UserIdWHERENum=1ANDdt>'''+@date+'''' Execsp_executesql@SqlENDGO

partition的意思是对数据进行分区,sql语句如下

SELECT*FROM(SELECTROW_NUMBER()over(partitionby[姓名]orderby[打卡时间]desc)asrowNum,[姓名],[打卡时间]FROM[dbo].[打卡记录表])tempWHEREtemp.rowNum=1

通过partition by [姓名] order by [打卡时间] desc,这句就可以做到,让数据按照姓名分组,并且在每组内部按照时间进行排序

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:SQLServer RANK()排名函数如何使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:.NET Core剪裁器的工作原理是什么下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18