---
title: OceanBase 支持窗口函数吗？ -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 支持窗口函数吗？ 相关的常见问题和使用技巧，帮助您快速解决OceanBase 支持窗口函数吗？ 的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# OceanBase 支持窗口函数吗？

更新时间：2023-11-30 12:01

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：FAQ  

OceanBase 的 Oracle 模式支持 OVER 子句，也即常说的窗口函数。本文介绍窗口函数的语法。

OceanBase 的 Oracle 模式支持 OVER 子句，也即常说的窗口函数。一个窗口包含三个组成部分：

- 分区规范，用于将输入行分裂到不同的分区中。这个过程和 `GROUP BY` 子句的分裂过程相似。
 - 排序规范，用于决定输入数据行在窗口函数中执行的顺序。
 - 窗口边界，指定计算数据的窗口边界。默认值为 `RANGE UNBOUNDED PRECEDING`。这个边界包含当前分区中所有从开始到目前行的所有数据。

OceanBase 数据库中窗口函数的语法如下。

有关窗口函数的详细信息，请参见《OceanBase 数据库 SQL 参考（Oracle 模式）》中的 **函数** 章节。

```unknow
CREATE OR REPLACE FUNCTION analytic_function([ arguments ])
 OVER (
    [ PARTITION BY { expr[, expr ]... | ( expr[, expr ]... ) } ]
    [ORDER [ SIBLINGS ] BY{ expr | position | c_alias } [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, { expr | position | c_alias } [ ASC | DESC ][ NULLS FIRST | NULLS LAST ]]...
    [ { ROWS | RANGE } { BETWEEN { UNBOUNDED PRECEDING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING } } AND{ UNBOUNDED FOLLOWING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING } } | { UNBOUNDED PRECEDING | CURRENT ROW| value_expr PRECEDING}} ] ]
  )

```

上一篇

[XML 列混合 offline 删除列操作，XML 列数据丢失](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000867302)

下一篇

[OceanBase 数据库 Oracle 模式如何实现 md5 函数](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450141) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
