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——索引+基于单表的数据插入与简单查询【1】
Apr 05 SQL Server
2021-4-3课程——SQL Server查询【2】
Apr 05 SQL Server
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
SQL SERVER存储过程用法详解
Feb 24 SQL Server
SQL Server实现分页方法介绍
Mar 16 SQL Server
SQL Server中锁的用法
May 20 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 SQL Server
SQL解决未能删除约束问题drop constraint
May 30 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
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
用javascript实现画板的代码
2007/09/05 Javascript
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
python查询mysql中文乱码问题
2014/11/09 Python
解决uWSGI的编码问题详解
2017/03/24 Python
python实现梯度下降算法
2020/03/24 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
财务出纳岗位职责
2014/02/03 职场文书
秋季运动会广播稿
2014/02/22 职场文书
活动总结新闻稿
2014/08/30 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
2014年党务工作总结
2014/11/25 职场文书
2016年国陪研修感言
2015/11/18 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python
vue实现简易音乐播放器
2022/08/14 Vue.js