SQLServer RANK() 排名函数的使用


Posted in SQL Server onMarch 23, 2022

本文主要介绍了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;

SQLServer RANK() 排名函数的使用

求助问答存储过程使用:

USE [DB]
GO
 
/****** Object:  StoredProcedure [dbo].[sp_TodayJoinUser]    Script Date: 2021/1/26 14:45:24 ******/
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
 
-- =============================================
-- Author:		_Hey_Jude
-- Create date: 2021-01-26
-- Description:	获取今日发表帮助/回复的新用户
-- =============================================
CREATE PROCEDURE [dbo].[sp_TodayJoinUser] 
	@tableLevel int,
    @date varchar(30)
AS
Declare @Sql nvarchar(max) 
declare @minTabId int
declare @maxTabId int
declare @maxf_id int
declare @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 @Sql
END
 
GO

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

SELECT* FROM (
    SELECT
        ROW_NUMBER() over(partition by [姓名] order by [打卡时间] desc) as rowNum,
        [姓名],
        [打卡时间]
    FROM [dbo].[打卡记录表]
    ) temp
WHERE temp.rowNum = 1

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

到此这篇关于SQLServer RANK() 排名函数的使用的文章就介绍到这了,更多相关SQLServer RANK()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
SQLServer2019 数据库的基本使用之图形化界面操作的实现
Apr 08 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL SERVER触发器详解
Feb 24 SQL Server
SQL Server查询某个字段在哪些表中存在
Mar 03 SQL Server
SQL Server #{}可以防止SQL注入
May 11 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
SQL CASE 表达式的具体使用
Mar 21 #SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 #SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 #SQL Server
SQL Server实现分页方法介绍
Mar 16 #SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 #SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 #SQL Server
MySQL 中如何归档数据的实现方法
You might like
PHP中文编码小技巧
2014/12/25 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
Python类属性的延迟计算
2016/10/22 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
在Python中COM口的调用方法
2019/07/03 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
幼儿园大班教学反思
2014/02/10 职场文书
《落花生》教学反思
2014/02/25 职场文书
软件售后服务承诺书
2014/05/21 职场文书
工程造价专业求职信
2014/07/17 职场文书
安全生产月标语
2014/10/07 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Golang 结构体数据集合
2022/04/22 Golang