在Oracle中,FILTER函数用于过滤聚合函数的结果集。该函数的语法如下:
FILTER ( aggregate_function [, WHERE condition] )
其中,aggregate_function是需要过滤的聚合函数,而WHERE condition是过滤条件。只有满足条件的结果会被返回。
以下是一个使用FILTER函数的示例:
假设我们有一个名为sales的表,包含销售金额和销售日期。我们想要计算每个月的销售总额,并只显示大于1000的结果。
SELECT EXTRACT(MONTH FROM sales_date) AS month,
SUM(sales_amount) AS total_sales
FROM sales
GROUP BY EXTRACT(MONTH FROM sales_date)
HAVING FILTER(SUM(sales_amount), WHERE SUM(sales_amount) > 1000);
在上面的示例中,我们使用FILTER函数来过滤掉销售总额小于1000的结果。只有销售总额大于1000的结果会被返回。