千家信息网

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

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,今天小编给大家分享一下SQLServer RANK()排名函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所
千家信息网最后更新 2025年02月05日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安全错误 数据库的锁怎样保障安全 国家统筹网络安全工作 股权投资数据库 网络安全的班团活动怎么搞 数据库删除默认的语句 网络安全手抄报 8k纸 线缆检测软件开发 军人网络安全个人整改措施 万豪网络技术有限公司 区块链应用技术与数据库 药品广告数据库北京市30秒 有论文发表可以不被数据库收录吗 切实维护学校网络安全 联通网络技术研究院浙江 普陀区软件开发具体地址 下载站服务器租用 网络安全管理系统实现的功能 双u服务器进不去bios怎么办 渝中区网络软件开发流程参考价 江苏软件开发技术优势 南通app软件开发费用多少 ftp地址如何访问服务器 2021年哈尔滨网络安全 公众号软件开发是做什么的 郑州汇一城互联网科技有限公司 网络安全四小会议 网络技术规范具有的特征 网络安全与法治的广播稿 泰州网络安全作业教育平台登录 宁都租房网络安全 河北标准软件开发怎么样
0