The content discusses unified clustering with pivoted input data, which is a unified interface for calling various clustering algorithms. The clustering algorithms include AHC, DBSCAN, GMM, AKMEANS, KMEANS, KMEDIANS, KMEDOIDS, SOM, AP, and SP. The content also mentions that for GMM and AP, specific parameters need to be configured. Additionally, the content highlights that unified clustering with pivoted input differs from the original accelerated K-Means, K-Medians, and K-Medoids by creating a model during training and then using that model for cluster assignment. More details about each clustering method can be found in the corresponding topic.
------

SET SCHEMA DM_PAL;

DROP TABLE META_DATA_TABLE; 
CREATE COLUMN TABLE META_DATA_TABLE (
"VARIABLE_NAME" VARCHAR (100),
"VARIABLE_VALUE" VARCHAR (100)
); 

INSERT INTO META_DATA_TABLE VALUES ('V000', 'CONTINUOUS');	
INSERT INTO META_DATA_TABLE VALUES ('V001', 'CATEGORICAL');
INSERT INTO META_DATA_TABLE VALUES ('V002', 'CONTINUOUS');

DROP TABLE MY_DATA_TABLE; 
CREATE COLUMN TABLE MY_DATA_TABLE (
"ID" INTEGER,
"NAME" VARCHAR (100),
"VALUE" VARCHAR (100),
"PURPOSE" INTEGER
); 

INSERT INTO MY_DATA_TABLE VALUES (0, 'V000','0.5',1);	
INSERT INTO MY_DATA_TABLE VALUES (0, 'V001','A',1);
INSERT INTO MY_DATA_TABLE VALUES (0, 'V002','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (1, 'V000','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (1, 'V001','A',1);
INSERT INTO MY_DATA_TABLE VALUES (1, 'V002','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (2, 'V000','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (2, 'V001','A',1);
INSERT INTO MY_DATA_TABLE VALUES (2, 'V002','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (3, 'V000','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (3, 'V001','A',1);
INSERT INTO MY_DATA_TABLE VALUES (3, 'V002','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (4, 'V000','1.1',1);	
INSERT INTO MY_DATA_TABLE VALUES (4, 'V001','B',1);
INSERT INTO MY_DATA_TABLE VALUES (4, 'V002','1.2',1);
INSERT INTO MY_DATA_TABLE VALUES (5, 'V000','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (5, 'V001','B',1);
INSERT INTO MY_DATA_TABLE VALUES (5, 'V002','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (6, 'V000','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (6, 'V001','B',1);
INSERT INTO MY_DATA_TABLE VALUES (6, 'V002','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (7, 'V000','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (7, 'V001','B',1);
INSERT INTO MY_DATA_TABLE VALUES (7, 'V002','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (8, 'V000','0.5',1);	
INSERT INTO MY_DATA_TABLE VALUES (8, 'V001','B',1);
INSERT INTO MY_DATA_TABLE VALUES (8, 'V002','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (9, 'V000','1.2',1);
INSERT INTO MY_DATA_TABLE VALUES (9, 'V001','C',1);
INSERT INTO MY_DATA_TABLE VALUES (9, 'V002','16.1',1);
INSERT INTO MY_DATA_TABLE VALUES (10, 'V000','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (10, 'V001','C',1);
INSERT INTO MY_DATA_TABLE VALUES (10, 'V002','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (11, 'V000','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (11, 'V001','C',1);
INSERT INTO MY_DATA_TABLE VALUES (11, 'V002','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (12, 'V000','16.5',1);	
INSERT INTO MY_DATA_TABLE VALUES (12, 'V001','C',1);
INSERT INTO MY_DATA_TABLE VALUES (12, 'V002','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (13, 'V000','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (13, 'V001','C',1);
INSERT INTO MY_DATA_TABLE VALUES (13, 'V002','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (14, 'V000','15.6',1);
INSERT INTO MY_DATA_TABLE VALUES (14, 'V001','D',1);
INSERT INTO MY_DATA_TABLE VALUES (14, 'V002','16.2',1);
INSERT INTO MY_DATA_TABLE VALUES (15, 'V000','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (15, 'V001','D',1);
INSERT INTO MY_DATA_TABLE VALUES (15, 'V002','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (16, 'V000','16.5',1);	
INSERT INTO MY_DATA_TABLE VALUES (16, 'V001','D',1);
INSERT INTO MY_DATA_TABLE VALUES (16, 'V002','0.5',1);
INSERT INTO MY_DATA_TABLE VALUES (17, 'V000','16.5',1);
INSERT INTO MY_DATA_TABLE VALUES (17, 'V001','D',1);
INSERT INTO MY_DATA_TABLE VALUES (17, 'V002','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (18, 'V000','15.5',1);
INSERT INTO MY_DATA_TABLE VALUES (18, 'V001','D',1);
INSERT INTO MY_DATA_TABLE VALUES (18, 'V002','1.5',1);
INSERT INTO MY_DATA_TABLE VALUES (19, 'V000','15.7',1);
INSERT INTO MY_DATA_TABLE VALUES (19, 'V001','A',1);
INSERT INTO MY_DATA_TABLE VALUES (19, 'V002','1.6',1);

--parameter table
DROP TABLE PAL_PARAMETER_TBL; 
CREATE COLUMN TABLE PAL_PARAMETER_TBL (
"NAME" VARCHAR (50),
"INT_VALUE" INTEGER,
"DOUBLE_VALUE" DOUBLE,
"STRING_VALUE" VARCHAR (100)
); 

INSERT INTO PAL_PARAMETER_TBL VALUES ('FUNCTION', NULL, NULL, 'KMEANS');
INSERT INTO PAL_PARAMETER_TBL VALUES ('THREAD_RATIO', NULL, 1.0, NULL); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('N_CLUSTERS', 4, NULL, NULL);
INSERT INTO PAL_PARAMETER_TBL VALUES ('INIT', 1, NULL, NULL);
INSERT INTO PAL_PARAMETER_TBL VALUES ('DISTANCE_LEVEL',2, NULL, NULL); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('MAX_ITER', 100, NULL, NULL); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('TOL', NULL, 1.0E-6, NULL); 
INSERT INTO PAL_PARAMETER_TBL VALUES ('CATEGORY_WEIGHTS', NULL, 0.5, NULL);

CALL _SYS_AFL.PAL_UNIFIED_CLUSTERING_PIVOT(META_DATA_TABLE,MY_DATA_TABLE, PAL_PARAMETER_TBL, ?,?,?,?,?,?,?);

