`
wandejun1012
  • 浏览: 2720005 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL OVER用法

 
阅读更多

 

sql over的作用及用法
RANK ( ) OVER ( [query_partition_clause] order_by_clause )
DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )
可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,
其中PARTITION BY 为分组字段,ORDER BY 指定排序字段


over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。
其参数:over(partition by columnname1 order by columnname2)
含义:按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。
例如:employees表中,有两个部门的记录:department_id =10和20
select department_id,rank() over(partition by department_id order by salary) from employees就是指在部门10中进行薪水的排名,在部门20中进行薪水排名。如果是partition by org_id,则是在整个公司内进行排名。

 --------------------------------------------------------------------------------------------

以上为示例1

 

 

Select ID, Position + datediff(day, PDate, getdate()) as Position,PDate, Row_Number() over(order by Position) as Sort
From OverTest

  --------------------------------------------------------------------------------------------

以上为示例2

 

 

 

sql = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY table1.BookingBranch, table1.RefNo) AS RowId, * From ("
				+ sql.toString() + ") as Table1) as Table2 WHERE Table2.RowId BETWEEN " + startRow + " AND " + endRow;		
		

  --------------------------------------------------------------------------------------------

以上为示例3

其中startRow=a1+(an-1)*pageSize

endRow=an*pageSize

an也可以理解成pageNumber,页号

 

分页经常会用到这个函数。

 

 

分享到:
评论

相关推荐

    SQLServer中Partition By及row_number 函数使用详解

    本文将详细讲解这两个函数的使用方法及其在实际场景中的应用。 `PARTITION BY` 关键字是分析函数的一个关键组成部分,它的主要作用是对结果集进行分组。在没有指定的情况下,`PARTITION BY` 将默认对整个结果集进行...

    mssql sqlserver 使用sql脚本实现相邻两条数据相减.docx

    在本文中,我们将讨论如何使用 SQL 脚本在 MSSQL SQL Server 中实现相邻两条数据相减的方法。 创建表和插入数据 首先,我们需要创建一个名为 XXX 的表,并插入一些示例数据。以下是创建表和插入数据的 SQL 语句: ...

    Oracle查询中OVER (PARTITION BY ..)用法

    Oracle查询中的`OVER (PARTITION BY ..)`是一个窗口函数,它允许我们在数据集上执行计算,但不是在整个结果集上,而是针对每个分区。这部分功能非常强大,可以用于复杂的分析和排序任务,尤其是在处理分组数据时。在...

    Sql Server 开窗函数Over()的使用实例详解

    这里我们将通过一个具体的实例来详细讲解`OVER()`函数的使用方法。 首先,我们创建一个名为`@t`的临时表,存储产品信息,包括`ProductID`、`ProductName`、`ProductType`和`Price`字段。接着,我们向`@t`中插入一些...

    over函数的使用

    ### over函数概述 在数据库查询语言SQL中,`over`函数是处理复杂数据分析的一个强大工具。...理解并掌握这些函数的使用方法对于提高数据分析能力至关重要。希望以上内容能帮助您更好地理解和应用这些强大的SQL特性。

    T-SQL表的维护 select TOP的用法

    ### T-SQL表的维护与SELECT TOP的用法 在SQL Server中,T-SQL(Transact-SQL)是用于管理、查询和操作数据库的一种语言。本文将详细介绍T-SQL中表的维护以及如何使用`SELECT TOP`子句来获取指定数量的记录。 #### ...

    sql语句 各种sql语句的详细用法与讲解

    在这个文档“sql语句妙用,各种sql语句的详细用法与讲解.doc”中,我们预计将深入探讨以下SQL语句的主要类别及其用法: 1. **数据查询(SELECT语句)**: - **基本查询**:从单个或多个表中选取数据,例如`SELECT ...

    sql server 中如何增加递增的序号列【实用】

    这种方法使用 SQL Server 2005 独有的 ROW_NUMBER() OVER () 语法来生成递增的序号列,并使用 CTE 选取序号 2 ~ 4 的数据。例如: ```sql WITH 排序后的图书 AS( SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    使用方法论优化查询;在查询中用TOP选项修改数据;用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;通过逻辑难题提高你的逻辑能力并掌握查询问题的核心等。  你将学习到如何:  理解逻辑和物理的...

    ROW_NUMBER() OVER函数的基本用法

    ROW_NUMBER() OVER 函数的基本用法 ROW_NUMBER() OVER 函数是 SQL Server 中的一个窗口函数,用于对查询结果进行编号。该函数可以根据指定的列进行分组和排序,并为每一组记录返回一个唯一的编号。 语法: ROW_...

    sqlserver排名次若干种方法

    ### SQL Server 排名次若干种方法 在SQL Server中,对特定字段进行排序和排名是一种常见的需求。本文将详细探讨几种实现这一功能的方法,并针对不同的业务场景提供解决方案。 #### 场景概述 假设我们有一张表,...

    创意sql--------

    【创意SQL】是一种在数据库管理领域中用于解决复杂查询、数据挖掘或优化数据处理的创新性SQL技巧。它不仅局限于标准SQL语法,还...不断学习和实践,你将能够发现更多巧妙的SQL使用方法,解决棘手的问题,提升工作效率。

    SQL 关于记录排序 sqlserver

    `ORDER BY` 子句是 SQL 中用于对结果集进行排序的标准方法。它可以按照一个或多个列升序或降序排序。例如,要按 `column1` 升序排列数据: ```sql SELECT column1, column2 FROM table_name ORDER BY column1 ASC; `...

    源码T-SQL性能调优秘笈 基于SQL Server 2012窗口函数

    这里可能包括了更多高级用法,如LAG()和LEAD()函数用于访问相邻行的数据,以及累计和累计平均的计算方法,如SUM() OVER和AVG() OVER。 第三章“有序集函数”则关注在窗口操作中涉及的排序和分组功能。可能会讨论ROW...

    oracle查看执行最慢与查询次数最多的sql语句

    在Oracle中,可以使用`v$sqlarea`视图来获取这些信息。以下是一个示例查询: ```sql SELECT sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS "执行次数", ROUND(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",...

    三种数据库SQL分页方法详解

    ### 三种数据库SQL分页方法详解 在数据库查询过程中,分页是非常常见且重要的一个功能。它可以帮助我们更高效地处理大量数据,特别是在构建大型应用系统时,分页技术能够显著提升用户体验。本文将详细介绍三种...

    java语言的分页查询功能(mysql和sql server)

    理解分页原理和数据库分页语法,掌握JDBC基本用法,再根据实际需求选择是否使用框架进行优化,是实现高效分页查询的关键。无论是在MySQL还是SQL Server中,正确地实现分页都能显著提升应用性能和用户体验。

    [sql server]SQL Server2005杂谈(3):四个排名函数的比较.doc

    这四个排名函数都可以用于生成序号,但它们的用途和使用方法不同。row_number 函数可以用于实现查询表中指定范围的记录或实现分页功能,rank 函数和 dense_rank 函数用于考虑排序字段值相同的情况,ntile 函数用于将...

    ORACLE_OVER函数

    #### 五、OVER函数的高级用法 ##### 示例4:使用LAG()和LEAD()获取前后行数据 LAG()和LEAD()函数可以获取当前行前面或后面一行的数据。 ```sql SELECT employee_id, salary, department_id, LAG(salary, 1) OVER...

Global site tag (gtag.js) - Google Analytics