次のテーブルの定義とデータについて考えてみます。
CREATE TABLE Product_Life (Product_ID INTEGER, Product_class VARCHAR(30), Hours INTEGER); SELECT * FROM Product_Life;
このSELECT文の出力は、次のとおりです。
Product_ID Product_class Hours ----------- ------------------------------ ----------- 100 Bulbs 100 100 Bulbs 200 100 Bulbs 300
次に、入力引数の標準偏差を計算する集約UDFのSQL定義を示します。
CREATE FUNCTION STD_DEV (i INTEGER) RETURNS FLOAT CLASS AGGREGATE (64) SPECIFIC std_dev LANGUAGE C NO SQL PARAMETER STYLE SQL NOT DETERMINISTIC CALLED ON NULL INPUT EXTERNAL NAME 'ss!stddev!stddev.c!f!STD_DEV'
次の問合わせでは、集約UDF式を使用して電球の寿命の標準偏差を計算します。
SELECT Product_ID, SUM(Hours), STD_DEV(Hours) FROM Product_Life WHERE Product_class = 'Bulbs' GROUP BY Product_ID;
このSELECT文の出力は、次のとおりです。
Product_ID Sum(hours) std_dev(hours) ----------- ----------- ---------------------- 100 600 8.16496580927726E 001