sql >> データベース >  >> RDS >> PostgreSQL

複数のパラメータを持つPostgreSQLアグリゲート

    この例がお役に立てば幸いです。 (accumulator、aggregate-arguments)を受け取り、新しいアキュムレータ値を返す関数が必要です。以下のコードを試してみると、すべてがどのように組み合わされているかを感じることができます。

    BEGIN;
    
    CREATE FUNCTION sum_product_fn(int,int,int) RETURNS int AS $$
        SELECT $1 + ($2 * $3);
    $$ LANGUAGE SQL;           
    
    CREATE AGGREGATE sum_product(int, int) (
        sfunc = sum_product_fn,
        stype = int, 
        initcond = 0
    );
    
    SELECT 
        sum(i) AS one,     
        sum_product(i, 2) AS double,
        sum_product(i,3) AS triple
    FROM generate_series(1,3) i;
    
    ROLLBACK;      
    

    それはあなたに次のようなものを与えるはずです:

     one | double | triple 
    -----+--------+--------
       6 |     12 |     18
    


    1. PaypalphpMySQL統合チュートリアル

    2. 複数レベルの役割を持つRBACのDBスキーマ

    3. サブフォームを使用したTreeViewコントロール

    4. SqlDataAdapterを使用して行を挿入する