跳动探索网

💻📚 Oracle开窗函数Over(Partition By)函数整理✨

导读 Oracle中的开窗函数(Window Functions)是数据分析的强大工具之一。其中,`OVER(PARTITION BY)` 是一种常用且实用的功能,它能够帮助我...

Oracle中的开窗函数(Window Functions)是数据分析的强大工具之一。其中,`OVER(PARTITION BY)` 是一种常用且实用的功能,它能够帮助我们对数据进行分组处理,同时保留所有行。简单来说,`PARTITION BY` 就像是 SQL 中的 `GROUP BY`,但它不会减少数据行数,而是按照指定列对数据进行逻辑分区。

例如,假设你有一张销售记录表,想按月份统计每个客户的总销售额,但又需要保留每笔交易的详细信息。这时就可以使用 `OVER(PARTITION BY)`:

```sql

SELECT

customer_id,

order_date,

total_amount,

SUM(total_amount) OVER(PARTITION BY customer_id) AS total_sales

FROM sales;

```

此外,结合 `ORDER BY` 和窗口函数,还能实现排名功能,如 `ROW_NUMBER()`、`RANK()` 等,进一步增强查询能力。掌握这些技巧不仅能提升效率,还能让复杂的业务需求迎刃而解!💡

Oracle SQL 数据库