oracle count() over()
时间: 2023-08-21 20:01:51 浏览: 157
ORACLE_OVER函数
Oracle的COUNT() OVER()是一种分析函数,它可以计算在行组内计算某一列的值的数量。它的语法如下:
```
COUNT(*) OVER (PARTITION BY column1 [, column2, ...] ORDER BY column3 [, column4, ...] [ASC | DESC] [ROWS BETWEEN start AND end])
```
其中,PARTITION BY指定行组,ORDER BY指定排序方式,ASC或DESC表示升序或降序,ROWS BETWEEN指定计算的行的范围。
举个例子,假设有一个表sales,其中包含sales_date、sales_rep和sales_amount字段,我们想要计算每个销售代表在每个月的销售总额。我们可以使用以下查询:
```
SELECT sales_date, sales_rep, sales_amount,
COUNT(*) OVER (PARTITION BY sales_rep, TO_CHAR(sales_date, 'YYYY-MM') ORDER BY sales_date) AS monthly_sales_count
FROM sales;
```
这个查询将按照销售代表和销售日期进行分组,并按照销售日期排序,然后计算每个销售代表在每个月的销售总额。最后,它将在结果集中返回monthly_sales_count列,其中包含每个销售代表在每个月的销售总额。
阅读全文