SQLServer RANK()排名函数如何使用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天小编给大家分享一下SQLServer RANK()排名函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所
千家信息网最后更新 2025年11月07日SQLServer RANK()排名函数如何使用
今天小编给大家分享一下SQLServer RANK()排名函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
具体如下:
-- 例子表数据SELECT * FROM test;-- 统计分数SELECT name,SUM(achievement) achievement FROM test GROUP BY name; -- 按统计分数做排行SELECT RANK() OVER( ORDER BY SUM(achievement) desc) 排行,name,SUM(achievement) achievement FROM test GROUP BY name;
求助问答存储过程使用:
USE [DB]GO /****** Object: StoredProcedure [dbo].[sp_TodayJoinUser] Script Date: 2021/1/26 14:45:24 ******/SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO -- =============================================-- Author: _Hey_Jude-- Create date: 2021-01-26-- Description: 获取今日发表帮助/回复的新用户-- =============================================CREATE PROCEDURE [dbo].[sp_TodayJoinUser] @tableLevel int, @date varchar(30)ASDeclare @Sql nvarchar(max) declare @minTabId intdeclare @maxTabId intdeclare @maxf_id intdeclare @helpTableName nvarchar(max)declare @tableCount int BEGIN --最小f_id所在表 set @minTabId=0 set @tableCount=@minTabId --最大f_id所在表 set @maxf_id=(select MAX(F_ID) from [Table] where F_IsDelete=0) set @maxTabId=@maxf_id/@tablelevel set @helpTableName='SELECT UserID, Max([F_DateTime]) AS dt FROM [Table] GROUP BY UserID' while @tableCount<=@maxTabId begin print @tableCount set @helpTableName += ' UNION SELECT UserID, Max([DateTime]) as dt FROM SubTable'+cast(@tableCount as nvarchar(10))+' GROUP BY UserID ' set @tableCount=@tableCount+1 end set @Sql='SELECT [nikename] FROM ( SELECT UserID, RANK() OVER(PARTITION BY UserID ORDER BY dt) AS Num,dt FROM ( '+@helpTableName+' ) AS T ) AS NewT LEFT JOIN [UserTable] A WITH(NOLOCK) ON NewT.UserID = A.UserId WHERE Num = 1 AND dt > '''+@date+'''' Exec sp_executesql @SqlEND GO
partition的意思是对数据进行分区,sql语句如下
SELECT* FROM ( SELECT ROW_NUMBER() over(partition by [姓名] order by [打卡时间] desc) as rowNum, [姓名], [打卡时间] FROM [dbo].[打卡记录表] ) tempWHERE temp.rowNum = 1
通过 partition by [姓名] order by [打卡时间] desc,这句就可以做到,让数据按照姓名分组,并且在每组内部按照时间进行排序
以上就是"SQLServer RANK()排名函数如何使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
姓名
时间
知识
篇文章
打卡
数据
函数
内容
分数
所在
统计
不同
很大
最大
最小
例子
大部分
就是
意思
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
dnf下载代理服务器
软件开发实训实践目的
网络安全作用的案例
关于网络安全相关的议题
九思连强互联网电子科技有限公司
华为服务器故障码UC2
航天科技 工业互联网
网络技术四级考试
数据库时间段怎么写
根据app反向追踪服务器
授权ftp服务器
软件开发计划分配基线
嘉兴企业软件开发管理
linux网站服务器搭建
无法验证安全服务器的证书
java直播服务器
网络安全辟谣活动
数据库的设计任务
商海导航服务管理器连不上服务器
dell t420 服务器
手机游戏的服务器是怎么样的
新浪网络技术股份有限公司英文
网络安全的衡量指标
手游登录服务器失败 错误码-1
长沙游戏软件开发专业
试论网络安全面临的风险
做软件开发需要具备什么
数据库逻辑结构设计 id
办公电脑网络安全风险自查
数据库表对象字段属性