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-3课程——SQL Server查询【2】
Apr 05 SQL Server
SQL Server基本使用和简单的CRUD操作
Apr 05 SQL Server
SQLServer 日期函数大全(小结)
Apr 08 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
sql通过日期判断年龄函数的示例代码
Jul 16 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server中使用表变量和临时表
May 20 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
PHP 七大优势分析
2009/06/23 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
Python输出9*9乘法表的方法
2015/05/25 Python
使用requests库制作Python爬虫
2018/03/25 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
竞选副班长演讲稿
2014/04/24 职场文书
倡议书格式模板
2014/05/13 职场文书
妈妈别哭观后感
2015/06/08 职场文书
关于远足的感想
2015/08/10 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL
hive数据仓库新增字段方法
2022/06/25 数据库