When an SQL statement specifies an aggregate UDF, Teradata Database invokes the Java method that implements the aggregate UDF once for each item in the group, passing the detail values of a group through the input arguments.
In addition to the parameters that map to the input arguments of the UDF when it is specified in an SQL statement, the method signature for an aggregate UDF includes two special parameters for arguments that Teradata Database passes in. One of the arguments that Teradata Database passes in tells the method which aggregation phase it was invoked in so that the method knows how to combine the data passed in. Another argument provides a context for the method to retain intermediate results that it accumulates during the aggregation phases.