在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的結果會被返回。