zoukankan      html  css  js  c++  java
  • ROW_NUMBER()函数的使用

    SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用。
    
    实例如下:
    
    1.使用row_number()函数进行编号,如
    
    select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer
    
    原理:先按psd进行排序,排序完后,给每条数据进行编号。
    
    2.在订单中按价格的升序进行排序,并给每条记录进行排序代码如下:
    
    select DID,customerID,totalPrice,ROW_NUMBER() over(order by totalPrice) as rows from OP_Order
    
    3.统计出每一个各户的所有订单并按每一个客户下的订单的金额 升序排序,同时给每一个客户的订单进行编号。这样就知道每个客户下几单了。
    
    如图:
    
    SQL Server数据库ROW_NUMBER()使用详解
    
    代码如下:
    
    select ROW_NUMBER() over(partition by customerID  order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order
    
    4.统计每一个客户最近下的订单是第几次下的订单。
    SQL Server数据库ROW_NUMBER()使用详解 代码如下:
    with tabs as ( select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order ) select MAX(rows) as '下单次数',customerID from tabs group by customerID 5.统计每一个客户所有的订单中购买的金额最小,而且并统计改订单中,客户是第几次购买的。 如图:
    SQL Server数据库ROW_NUMBER()使用详解 上图:rows表示客户是第几次购买。 思路:利用临时表来执行这一操作。
    1.先按客户进行分组,然后按客户的下单的时间进行排序,并进行编号。 2.然后利用子查询查找出每一个客户购买时的最小价格。 3.根据查找出每一个客户的最小价格来查找相应的记录。 代码如下: with tabs as ( select ROW_NUMBER() over(partition by customerID order by insDT) as rows,customerID,totalPrice, DID from OP_Order ) select * from tabs where totalPrice in ( select MIN(totalPrice)from tabs group by customerID ) 6.筛选出客户第一次下的订单。 SQL Server数据库ROW_NUMBER()使用详解 思路。利用rows=1来查询客户第一次下的订单记录。 代码如下: with tabs as ( select ROW_NUMBER() over(partition by customerID order by insDT) as rows,* from OP_Order ) select * from tabs where rows = 1 select * from OP_Order 7.rows_number()可用于分页 思路:先把所有的产品筛选出来,然后对这些产品进行编号。然后在where子句中进行过滤。 8.注意:在使用over等开窗函数时,over里头的分组及排序的执行晚于“wheregroup byorder by”的执行。
    如下代码:
    select ROW_NUMBER() over(partition by customerID order by insDT) as rows, customerID,totalPrice, DID from OP_Order where insDT>'2011-07-22' 以上代码是先执行where子句,执行完后,再给每一条记录进行编号。
    如果你是蜗牛,那你就不必害怕自己前进的缓慢,相信你自己,因为你的脚步永远不会落空,只要你一步步的向上爬,金字塔也必定被你踩在脚下。
  • 相关阅读:
    JS BOM对象 History对象 Location对象
    JS 字符串对象 数组对象 函数对象 函数作用域
    JS 引入方式 基本数据类型 运算符 控制语句 循环 异常
    Pycharm Html CSS JS 快捷方式创建元素
    CSS 内外边距 float positio属性
    CSS 颜色 字体 背景 文本 边框 列表 display属性
    【Android】RxJava的使用(三)转换——map、flatMap
    【Android】RxJava的使用(二)Action
    【Android】RxJava的使用(一)基本用法
    【Android】Retrofit 2.0 的使用
  • 原文地址:https://www.cnblogs.com/lx823706/p/5213065.html
Copyright © 2011-2022 走看看