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 相关文章推荐
SQL SERVER中常用日期函数的具体使用
Apr 08 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
SQL Server表分区删除详情
Oct 16 SQL Server
SQL Server实现分页方法介绍
Mar 16 SQL Server
如何使用SQL Server语句创建表
Apr 12 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
SQL Server Agent 服务无法启动
Apr 20 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server中的逻辑函数介绍
May 25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
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
hessian 在PHP中的使用介绍
2010/12/13 PHP
php开发文档 会员收费1期
2012/08/14 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
python 数据类型强制转换的总结
2021/01/25 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
高一家长会邀请函
2014/01/12 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书