¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

CREATE AGGREGATE

̾��

CREATE AGGREGATE -- ����������ؿ������

����

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 ���֤��ޤ���

�ѥ�᡼��

name

�������뽸��ؿ���̾���Ǥ� (�������޽���̾���ǽ)��

input_data_type

���ν���ؿ����黻�������ϥǡ������Ǥ��� ����ϡ������ͤ򸡺����ʤ�����ˤ� "ANY" �Ȥ��ƻ��ꤹ�뤳�Ȥ��Ǥ��ޤ� ���㤨�� count(*)�ˡ�

sfunc

���줾������ϥǡ����ͤ��Ф��ƸƤӽФ����������ܴؿ���̾���Ǥ��� ������̾�� 2 �Ĥΰ�����������ǽ�ΰ����� state_data_type ���� 2 ���ܤ� input_data_type���Ǥ��� ����ˡ������ͤ򸡺����ʤ�����ǤϤ��δؿ��� state_data_type ���ΰ�����1�Ĥ����Ȥ�ޤ��� �ɤ���ξ��Ǥ⡢���δؿ��� state_data_type �����ͤ��֤��ʤ���Фʤ�ޤ��� ���δؿ��ϸ��ߤξ����ͤȸ��ߤ����ϥǡ������ܤ������ꡢ���ξ����ͤ��֤��ޤ���

state_data_type

����ξ����ͤΥǡ������Ǥ���

ffunc

���٤Ƥ����ϥǡ������Ф�������򤷽���äƤ��顢����η�̤�׻����뤿��˸ƤФ��Ǹ�δؿ���̾���Ǥ��� ���δؿ��� state_data_type ���ΰ����� 1 �ĤȤ�ʤ��ƤϤ����ޤ��� ����ν��ϥǡ������Ϥ��δؿ����֤��ͤȤ����������ޤ��� ffunc �����ꤵ��ʤ����ˤϡ���λ���ξ����ͤ�����η�̤Ȥ��ƻȤ�졢���Ϸ��� state_data_type �ˤʤ�ޤ���

initial_condition

�����ͤν������Ǥ��� ����ϥǡ����� state_data_type �Ȥ��Ƽ����������ʸ��������Ǥʤ���Ф����ޤ��� �⤷���ꤵ��ʤ��ȡ������ͤ� NULL ����Ϥޤ�ޤ���

CREATE AGGREGATE�Υѥ�᡼���ϡ���Ǽ��������֤����ǤϤʤ���Ǥ�դν��֤ǵ��Ҥ��뤳�Ȥ��Ǥ��ޤ���

��

��33.9�򻲾Ȥ��Ƥ���������

�ߴ���

CREATE AGGREGATE �� PostgreSQL �θ����ĥ�Ǥ��� ɸ��SQL �Ǥϡ��桼������ν���ؿ����󶡤��Ƥ��ޤ���

��Ϣ����

ALTER AGGREGATE, DROP AGGREGATE