CREATE AGGREGATE name ( BASETYPE = input_data_type, SFUNC = sfunc, STYPE = state_data_type [ , FINALFUNC = ffunc ] [ , INITCOND = initial_condition ] )
CREATE AGGREGATE �ϡ�����������ؿ���������ޤ��� ɸ������ʪ�ˤϡ�min(integer)��avg(double precision)�ʤɤ����Ĥ��δ��ܷ��Ѥν���ؿ�����������Ƥ��ޤ��� �⤷����������������뤫�ޤ�����Ƥ��ʤ�����ؿ���ɬ�פʾ�硢ɬ�פʵ�ǽ�����뤿��� CREATE AGGREGATE ��Ȥ����Ȥ��Ǥ��ޤ���
��������̾���դ����Ƥ����� (�㤨�С�CREATE AGGREGATE myschema.myagg ...)������ؿ��ϻ��ꤵ�줿�������ޤǺ�������ޤ��� ��������̾���ʤ���С�����ؿ��ϸ��ߤΥ������ޤǺ�������ޤ���
����ؿ���̾�������ϥǡ������ˤ�äƼ��̤���ޤ��� �ۤʤ����Ϸ��α黻��ΤǤ���С�Ʊ������������� 2 �Ĥν���Ʊ��̾���Ǥ��äƤ���ޤ��� �����̾����������ϥǡ������ϡ�Ʊ������������Τ��٤Ƥ��̾�δؿ���̾����������ϥǡ������Ȥ⡢�㤦��Τˤ���ɬ�פ�����ޤ���
����ؿ��� 1 �Ĥ� 2 �Ĥ��̾�δؿ��������ޤ��� �������ܴؿ� sfunc �Ⱦ�ά��ǽ�ʺǽ����ؿ� ffunc �Ǥ��� �����ϰʲ��Τ褦�˻Ȥ��ޤ���
sfunc( internal-state, next-data-item ) ---> next-internal-state ffunc( internal-state ) ---> aggregate-value
PostgreSQL �ϡ�����θ��ߤ��������֤��ݻ����롢stype�ǡ������ΰ���ѿ���������ޤ��� ���줾������ϥǡ������ܤǡ��������ܴؿ������������������ͤ�����뤿��˸ƤӽФ���ޤ��� ���٤ƤΥǡ��������������ȡ��ǽ��ؿ�������ν����ͤ�����뤿��� 1 ��ƤӽФ���ޤ��� �⤷�ǽ��ؿ����ʤ���н�λ���ξ����ͤ����Τޤ��֤���ޤ���
����ؿ��ϡ����������ͤΤ���ν���ͤǤ��롢������֤����뤳�Ȥ��Ǥ��ޤ��� ����� text ������Ȥ��ƻ��ꤵ��ƥǡ����١����˳�Ǽ����ޤ����������ͥǡ�����������Ȥ���ͭ���ʳ���ɽ���Ǥʤ���Ф����ޤ��� �⤷������֤����뤵��ʤ��ȡ�NULL ����Ϥޤ�ޤ���
�⤷�������ܴؿ��� "����" ����������ȡ�NULL ���ϤǸƤӽФ����ȤϤǤ��ޤ��� ���Τ褦�����ܴؿ��Ǥϡ�����μ¹Ԥϰʲ��Τ褦�ˤʤ�ޤ��� NULL �����ͤ�̵�뤵��ޤ��ʤ��δؿ��ϸƤӽФ��줺���ξ����ͤ���¸���ޤ��ˡ� �⤷��������ͤ� NULL ���ȡ��ǽ���� NULL �����ͤ������ͤ��֤����������ܴؿ��� 2 ���ܤ��� NULL �����ͤ���ƤӽФ����Ϥޤ�ޤ��� ����� max �Τ褦�ʽ���μ����ˤ������Ǥ��� ���Τ褦��ư��� state_data_type �� input_data_type ��Ʊ�����ˤΤ�ͭ���ˤʤ뤳�Ȥ����դ��Ƥ��������� �����η����ۤʤ���ϡ��� NULL ����ͤ뤹�뤫���ʤǤʤ����ܴؿ���Ȥ�ʤ���Ф����ޤ���
�������ܴؿ������ʤǤϤʤ���硢���줾��������ͤ�̵���˸ƤӽФ��졢NULL ���Ϥ�NULL �����ͤ�ʬ�ǽ������ʤ���Ф����ޤ��� ����ˤ�ꡢ����κ����ԤϽ���� NULL �ͤΰ����ˤĤ��ƴ����˴������뤳�Ȥ��Ǥ��ޤ���
�⤷�ǽ��ؿ��� "����" ����������ȡ���λ�����ͤ� NULL �ξ��ˤϸƤӽФ���ޤ��� ����� NULL �Ȥ�����̤���ưŪ�˽��Ϥˤʤ�ޤ��� �ʤ������ϸ��ʤʴؿ��Τ�������Ū��ư��Ǥ�������ޤ��� �ɤΤ褦�ʾ��Ǥ�ǽ��ؿ��� NULL ���֤����Ȥ��Ǥ��ޤ��� �㤨�С�avg �κǽ��ؿ������Ϥ�0�Ԥ��Ȥ狼��� NULL ���֤��ޤ���
�������뽸��ؿ���̾���Ǥ� (����������̾���ǽ)��
���ν���ؿ����黻�������ϥǡ������Ǥ��� ����ϡ������ͤ����ʤ�����ˤ� "ANY" �Ȥ��ƻ��ꤹ�뤳�Ȥ��Ǥ��ޤ� ���㤨�� count(*)�ˡ�
���줾������ϥǡ����ͤ��Ф��ƸƤӽФ����������ܴؿ���̾���Ǥ��� ������̾�� 2 �Ĥΰ�����������ǽ�ΰ����� state_data_type ���� 2 ���ܤ� input_data_type���Ǥ��� ����ˡ������ͤ����ʤ�����ǤϤ��δؿ��� state_data_type ���ΰ�����1�Ĥ����Ȥ�ޤ��� �ɤ���ξ��Ǥ⡢���δؿ��� state_data_type �����ͤ��֤��ʤ���Фʤ�ޤ��� ���δؿ��ϸ��ߤξ����ͤȸ��ߤ����ϥǡ������ܤ������ꡢ���ξ����ͤ��֤��ޤ���
����ξ����ͤΥǡ������Ǥ���
���٤Ƥ����ϥǡ������Ф����������äƤ��顢����η�̤�����뤿��˸ƤФ��Ǹ�δؿ���̾���Ǥ��� ���δؿ��� state_data_type ���ΰ����� 1 �ĤȤ�ʤ��ƤϤ����ޤ��� ����ν��ϥǡ������Ϥ��δؿ����֤��ͤȤ����������ޤ��� ffunc �����ꤵ��ʤ����ˤϡ���λ���ξ����ͤ�����η�̤Ȥ��ƻȤ�졢���Ϸ��� state_data_type �ˤʤ�ޤ���
�����ͤν������Ǥ��� ����ϥǡ����� state_data_type �Ȥ��Ƽ����������ʸ��������Ǥʤ���Ф����ޤ��� �⤷���ꤵ��ʤ��ȡ������ͤ� NULL ����Ϥޤ�ޤ���
CREATE AGGREGATE�Υѥ����ϡ���Ǽ��������֤����ǤϤʤ���Ǥ�դν��֤ǵ��Ҥ��뤳�Ȥ��Ǥ��ޤ���