SQLServer RANK()排名函数如何使用
导读:本文共1328.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 具体如下:--例子表数据SELECT*FROMtest;--统计分数SELECTname,SUM(achievement)achievementFROMtestGROUPBYname;--按统计分数做排行SELECTRANK()OVER(ORDERBYSUM(achievement)desc)排行,name,SUM(achievement)achiev... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。具体如下:
--例子表数据SELECT*FROMtest;--统计分数SELECTname,SUM(achievement)achievementFROMtestGROUPBYname;--按统计分数做排行SELECTRANK()OVER(ORDERBYSUM(achievement)desc)排行,name,SUM(achievement)achievementFROMtestGROUPBYname;
求助问答存储过程使用:
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()排名函数如何使用的详细内容,希望对您有所帮助,信息来源于网络。