Discretize is a function that can be used on tables with multiple columns. It divides the rows of the table into segments called bins and applies smoothing methods to each bin in each column.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_DISC_DATA_TBL;
CREATE COLUMN TABLE PAL_DISC_DATA_TBL (
	"ID" INTEGER,
	"ATT1" DOUBLE,
	"ATT2" INTEGER,
	"ATT3" INTEGER,
	"ATT4" NVARCHAR(10)
);
INSERT INTO PAL_DISC_DATA_TBL VALUES(1, 10.0, 100, 1, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(2, 10.1, 101, 1, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(3, 10.2, 100, 1, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(4, 10.4, 103, 1, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(5, 10.3, 100, 1, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(6, 40.0, 400, 4, 'C');
INSERT INTO PAL_DISC_DATA_TBL VALUES(7, 40.1, 402, 4, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(8, 40.2, 400, 4, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(9, 40.4, 402, 4, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(10, 40.3, 400, 4, 'A');
INSERT INTO PAL_DISC_DATA_TBL VALUES(11, 90.0, 900, 2, 'C');
INSERT INTO PAL_DISC_DATA_TBL VALUES(12, 90.1, 903, 1, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(13, 90.2, 901, 2, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(14, 90.4, 900, 1, 'B');
INSERT INTO PAL_DISC_DATA_TBL VALUES(15, 90.3, 900, 1, 'B');

DROP TABLE #PAL_PARAMETER_TBL;
CREATE LOCAL TEMPORARY COLUMN TABLE #PAL_PARAMETER_TBL (
	"PARAM_NAME" VARCHAR(100),
	"INT_VALUE" INTEGER,
	"DOUBLE_VALUE" DOUBLE,
	"STRING_VALUE" VARCHAR(100)
);
INSERT INTO #PAL_PARAMETER_TBL VALUES('BINNING_VARIABLE', NULL, NULL, 'ATT1');
INSERT INTO #PAL_PARAMETER_TBL VALUES('METHOD', 0, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES('BIN_NUMBER', 3, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES('DEFAULT_SMOOTHING_METHOD', 2, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES('SMOOTHING_METHOD', 1, NULL, 'ATT2');
INSERT INTO #PAL_PARAMETER_TBL VALUES('CATEGORICAL_VARIABLE', NULL, NULL, 'ATT3');

CALL _SYS_AFL.PAL_DISCRETIZE(PAL_DISC_DATA_TBL, #PAL_PARAMETER_TBL, ?, ?, ?, ?);

