CREATE [ OR REPLACE ] AGGREGATE $name$ ( [ $agg_argmode$ ] [ $argname$ ] $arg_data_type$ [ , ... ] ) (
    SFUNC = $sfunc$,
    STYPE = $state_data_type$
    [ , SSPACE = $state_data_size$ ]
    [ , FINALFUNC = $ffunc$ ]
    [ , FINALFUNC_EXTRA = { TRUE | FALSE } ]
    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
    [ , COMBINEFUNC = $combinefunc$ ]
    [ , SERIALFUNC = $serialfunc$ ]
    [ , DESERIALFUNC = $deserialfunc$ ]
    [ , INITCOND = $initial_condition$ ]
    [ , MSFUNC = $msfunc$ ]
    [ , MINVFUNC = $minvfunc$ ]
    [ , MSTYPE = $mstate_data_type$ ]
    [ , MSSPACE = $mstate_data_size$ ]
    [ , MFINALFUNC = $mffunc$ ]
    [ , MFINALFUNC_EXTRA = { TRUE | FALSE } ]
    [ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
    [ , MINITCOND = $minitial_condition$ ]
    [ , SORTOP = $sort_operator$ ]
    [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ] )

CREATE [ OR REPLACE ] AGGREGATE $name$ ( [ [ $agg_argmode$ ] [ $argname$ ] $arg_data_type$ [ , ... ] ]
    ORDER BY [ $agg_argmode$ ] [ $argname$ ] $arg_data_type$ [ , ... ] ) (
    SFUNC = $sfunc$,
    STYPE = $state_data_type$
    [ , SSPACE = $state_data_size$ ]
    [ , FINALFUNC = $ffunc$ ]
    [ , FINALFUNC_EXTRA = { TRUE | FALSE } ]
    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
    [ , INITCOND = $initial_condition$ ]
    [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]
    [ , HYPOTHETICAL ] )

CREATE [ OR REPLACE ] AGGREGATE $name$ (
    BASETYPE = $base_type$,
    SFUNC = $sfunc$,
    STYPE = $state_data_type$
    [ , SSPACE = $state_data_size$ ]
    [ , FINALFUNC = $ffunc$ ]
    [ , FINALFUNC_EXTRA = { TRUE | FALSE } ]
    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
    [ , COMBINEFUNC = $combinefunc$ ]
    [ , SERIALFUNC = $serialfunc$ ]
    [ , DESERIALFUNC = $deserialfunc$ ]
    [ , INITCOND = $initial_condition$ ]
    [ , MSFUNC = $msfunc$ ]
    [ , MINVFUNC = $minvfunc$ ]
    [ , MSTYPE = $mstate_data_type$ ]
    [ , MSSPACE = $mstate_data_size$ ]
    [ , MFINALFUNC = $mffunc$ ]
    [ , MFINALFUNC_EXTRA = { TRUE | FALSE } ]
    [ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]
    [ , MINITCOND = $minitial_condition$ ]
    [ , SORTOP = $sort_operator$ ] )
