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 05 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
SQLServer之常用函数总结详解
Aug 30 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
SQL SERVER触发器详解
Feb 24 SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL Server携程核心系统无感迁移到MySQL实战
Jun 01 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 SQL Server
SQL Server数据库备份和恢复数据库的全过程
Jun 14 SQL Server
详解SQL报错盲注
Jul 23 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
简单采集了yahoo的一些数据
2007/02/14 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
JavaScript中实现块作用域的方法
2010/04/01 Javascript
javascript工具库代码
2012/03/29 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
对Python w和w+权限的区别详解
2019/01/23 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript