1)row_number() over(partition by 列名1 order by 列名2 desc)的使用

表示根据 列名1 分组,然后在分组内部根据 列名2 排序,而此函数计算的值就表示每组内部排序后的顺序编号,可以用于去重复值

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

原文链接:https://blog.csdn.net/mzy755423868/article/details/80573654

表示根据 列名1 分组,然后在分组内部根据 列名2 排序,而此函数计算的值就表示每组内部排序后的顺序编号,可以用于去重复值

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

---查询所有姓名,如果同名,则按年龄降序
SELECT name,age,detail,ROW_NUMBER() OVER(PARTITION BY name ORDER BY age DESC) FROM TEST_Y;
 
通过上面的语句可知,是按照name字段分组,按age字段排序的。如果只需查询出不重复的姓名即可,则可使用如下的语句, 由查询结果可知,姓名相同年龄小的数据被过滤掉了;

SELECT * FROM (SELECT name,age,detail,ROW_NUMBER() OVER( PARTITION BY name ORDER BY age DESC)RN FROM TEST_Y )WHERE RN= 1;


 
分页
 
--先做一个子查询,先按id1进行排序,排序完后,给每条记录进行了编号
--然后再将子查询做为一张表,就可以进行分页了
select *
  from (select t.*,row_number() over(order by t.id1 asc) as rn from demo t) d
  where d.rn between 1 and 2
 

SQL row_number() over(partition by函数的更多相关文章

  1. sql server ,OVER(PARTITION BY)函数用法,开窗函数,over子句,over开窗函数

    https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx https://social.msdn.microsoft.c ...

  2. row_number() OVER(PARTITION BY)函数介绍

      OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个 ...

  3. 【Oracle】row_number() over(partition by )函数用法

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编 ...

  4. SQL Server数据库partition by 与ROW_NUMBER()函数使用详解[转]

    关于SQL的partition by 字段的一些用法心得 先看例子: if object_id('TESTDB') is not null drop table TESTDB create table ...

  5. sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据

    SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...

  6. SQL ROW_NUMBER() OVER函数的基本用法用法

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW ...

  7. 【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例

    #用法说明 select row_number() over(partition by A order by B ) as rowIndex from table A :为分组字段 B:为分组后的排序 ...

  8. SQL中ROW_NUMBER()/RANK() /DENSE_RANK() OVER函数的基本用法

    一.ROW_NUMBER()的用法 语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) row_number()从1开始,为每一条分组记 ...

  9. sql ROW_NUMBER() 排序函数 (转)

    1使用row_number()函数进行编号:如 select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Cus ...

随机推荐

  1. SAP Study Notes: BW Queriy-Variables(变量)

    About Variable:1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中.2.Variable有以下几种类型:Characteristic:用于限制Cha ...

  2. FAL_CLIENT和FAL_SERVER参数详解

    FAL_CLIENT和FAL_SERVER参数详解 转载:http://openwares.net/database/fal_client_fal_server.html FAL_CLIENT和FAL ...

  3. c++命名空间---namespace

    C++ 命名空间 C++ 应用程序中.例如,您可能会写一个名为 func() 的函数,在另一个可用的库中也存在一个相同的函数 func().这样,编译器就无法判断您所使用的是哪一个 func() 函数 ...

  4. iOS应用开发,全局强制竖屏,部分页面允许旋转的处理

    目前大多数app都不支持横屏模式,用户不常用,开发起来也麻烦一些.但有些时候,又离不开横屏和竖屏的切换,比如查看视频.图片.文档等,这时又不得不对页面做横屏的处理.下面来教大家如何处理这种场景,方法可 ...

  5. 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态

    实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...

  6. 【iCore4 双核心板_FPGA】例程十五:基于单口RAM的ARM+FPGA数据存取实验

    实验现象: 写RAM命令格式:write:地址(0-255),数据(0-65535)\cr\lf 读RAM命令格式:read:地址(0-255)\cr\lf 核心代码: int main(void) ...

  7. 【iCore1S 双核心板_FPGA】例程十五:基于I2C的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...

  8. net use错误原因解决(精辟)(转)

      (1)"发生系统错误 1326. 登录失败: 未知的用户名或错误密码." 在远程机的"控制面板-文件夹选项-查看-简单的文件共享",去掉选取,然后再尝试连接 ...

  9. shell中的函数 shell中的数组 告警系统需求分析

     

  10. 二叉树转换成森林&森林变成二叉树

    一,树转换成二叉树 1,将全部兄弟结点连起来; 2,保留第一个兄弟结点与父节点的连接,断开其它兄弟结点与父节点的连接,然后以根节点为轴依照顺时针方向旋转45度 watermark/2/text/aHR ...