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 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
SQL Server 数据库实验课第五周——常用查询条件
Apr 05 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 SQL Server
SQL Server内存机制浅探
Apr 06 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
SQL Server #{}可以防止SQL注入
May 11 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
SQL Server中的逻辑函数介绍
May 25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 SQL Server
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 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算开始时间到过期时间的相隔的天数
2011/01/12 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
2013/12/30 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
python如何通过protobuf实现rpc
2016/03/06 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python中new方法的详解
2019/01/15 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
如何用python处理excel表格
2020/06/09 Python
白色公司:The White Company
2017/10/11 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
主持人演讲稿范文
2013/12/28 职场文书
自我评价如何写好?
2014/01/05 职场文书
优秀学生评语大全
2014/04/25 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python