• PARTITION BY函数


    1、PARTITION BY

    开窗函数,

    使用场景,在合同表里,获取所有房源在最新的合同编号。或者获取每个班级每次考试的第一名。

    区别聚合函数:对于每个每个分组返回多行,而聚合函数对于每个分组只返回一行,

    SQL代码:

    1 SELECT  ROW_NUMBER() OVER ( PARTITION BY ext.RoomNO, ext.OrderNO ORDER BY rp.FDate1 DESC ) rn ,
    2         rp.FContractNo ,
    3         rmi.IRoomNO,
    4         rp.FDate1
    5 FROM    t_RPContract rp
    6         JOIN T_ContractExtend ext ON ext.FContractID = rp.FContractID
    7         JOIN dbo.FY_RoomItems rmi ON rmi.RoomNO = ext.RoomNO
    8                                      AND rmi.OrderNO = ext.OrderNO;

    按照房源编号分组,给每一组进行按时间排序

    结果如下

    如上图所示,房源ZZ00000001Z,按照时间倒序排列,并给每一类加一个序号,所以所有序号为1 的数据都是最新的一条数据。

    2、over partition by与group by的区别:

    group by是对检索结果的保留行进行单纯分组,一般和聚合函数一起使用例如max、min、sum、avg、count等一块用。

    partition by虽然也具有分组功能,但同时也具有其他的高级功能。

  • 相关阅读:
    实验一密码引擎加密API实现与测试
    实验一密码引擎商用密码算法实现1(加选做openssl验证)
    ubuntu & Fedora 防火墙关闭 NK
    面试网络编程 NK
    网络爬虫环境配置 NK
    WebServer高性能服务器 NK
    C++多态详解 NK
    问题记录 NK
    PYTHON基础目录 NK
    C++面试 NK
  • 原文地址:https://www.cnblogs.com/MirZhai/p/9997513.html
Copyright © 2020-2023  润新知