¾�ΥС�������ʸ�� �� 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�ϡ�����������ؿ���������ޤ��� ����ʪ�ˤϴ���Ū�����ġ��褯���Ѥ���뽸��ؿ��������Ĥ��ޤޤ�Ƥ��ꡢ��9.15��ʸ�񲽤���Ƥ��ޤ��� �⤷����������������뤫�ޤ��󶡤���Ƥ��ʤ�����ؿ���ɬ�פʾ�硢ɬ�פʵ�ǽ���󶡤��뤿��� CREATE AGGREGATE��Ȥ����Ȥ��Ǥ��ޤ���

��������̾���դ����Ƥ����� (�㤨�С�CREATE AGGREGATE myschema.myagg ...)������ؿ��ϻ��ꤵ�줿�������ޤǺ�������ޤ��� ��������̾���ʤ���С�����ؿ��ϸ��ߤΥ������ޤǺ�������ޤ���

����ؿ���̾�������ϥǡ������ˤ�äƼ��̤���ޤ��� �ۤʤ����Ϸ��α黻�򤹤�ΤǤ���С�Ʊ�������������2�Ĥν���Ʊ��̾���Ǥ��äƤ⹽���ޤ��� �����̾����������ϥǡ������ϡ�Ʊ����������������Ƥ��̾�δؿ���̾����������ϥǡ������Ȥ⡢�㤦��Τˤ���ɬ�פ�����ޤ���

����ؿ���1�Ĥ�2�Ĥ��̾�δؿ��������ޤ��� �������ܴؿ�sfunc�Ⱦ�ά��ǽ�ʺǽ��׻��ؿ�ffunc�Ǥ��� �����ϰʲ��Τ褦�˻Ȥ��ޤ���

sfunc( ��������, ���Υǡ������� ) ---> ������������
ffunc( �������� ) ---> �����

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�Υѥ�᡼���ϡ���Ǽ��������֤����ǤϤʤ���Ǥ�դν��֤ǵ��Ҥ��뤳�Ȥ��Ǥ��ޤ���

��

��31.10�򻲾Ȥ��Ƥ���������

�ߴ���

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

��Ϣ����

ALTER AGGREGATE, DROP AGGREGATE