[转帖]SQL中partition关键字的使用

Posted 燕闪硕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转帖]SQL中partition关键字的使用相关的知识,希望对你有一定的参考价值。

原文链接

最近在写后台语句时候,运用到了partition这样一个关键字。

先大致说一下背景,有一种数据表,如下

现在需要取出,每一个人最近的一次打卡时间。

思路是,先把数据按照人名分组,然后在每个组里面按照时间排倒叙,最后取出每组的第一条数据即可。

partition的意思是对数据进行分区,sql语句如下

复制代码
1         select * from
2         (
3           SELECT 
4                 ROW_NUMBER() over(partition by [姓名] order by [打卡时间] desc) as rowNum
5               ,[姓名]
6               ,[打卡时间]
7           FROM [dbo].[打卡记录表]
8         ) temp
9         where temp.rowNum = 1
复制代码

通过 partition by [姓名] order by [打卡时间] desc,这句就可以做到,让数据按照姓名分组,并且在每组内部按照时间进行排序。

原文链接

以上是关于[转帖]SQL中partition关键字的使用的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库系列 之SQL中row_number() over (partition by)的详解

SQL server PARTITION BY 是啥意思

[转帖]B4. Concurrent JVM 锁机制(synchronized)

SQL server PARTITION BY 是啥意思

利用SQL语句产生分组序号

开窗函数