The content explains the concept of distribution quantile and how it is calculated. It mentions that the algorithm evaluates the inverse of the cumulative distribution function (CDF) or the inverse of the complementary cumulative distribution function (CCDF) for a given probability and probability distribution. It also provides the formulas for CDF and CCDF.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_DISTRQUANTILE_DATA_TBL;
CREATE COLUMN TABLE PAL_DISTRQUANTILE_DATA_TBL (
    "DATACOL" DOUBLE
);
INSERT INTO PAL_DISTRQUANTILE_DATA_TBL VALUES (0.3);
INSERT INTO PAL_DISTRQUANTILE_DATA_TBL VALUES (0.5);
INSERT INTO PAL_DISTRQUANTILE_DATA_TBL VALUES (0.632);
INSERT INTO PAL_DISTRQUANTILE_DATA_TBL VALUES (0.8);

DROP TABLE PAL_DISTRQUANTILE_DISTRPARAM_TBL;
CREATE COLUMN TABLE PAL_DISTRQUANTILE_DISTRPARAM_TBL (
    "NAME" VARCHAR(50),
    "VALUE" VARCHAR(50)
);
INSERT INTO PAL_DISTRQUANTILE_DISTRPARAM_TBL VALUES ('DistributionName', 'Weibull');
INSERT INTO PAL_DISTRQUANTILE_DISTRPARAM_TBL VALUES ('Shape', '2.11995');
INSERT INTO PAL_DISTRQUANTILE_DISTRPARAM_TBL VALUES ('Scale', '277.698');

DROP TABLE PAL_DISTRQUANTILE_PARAMETER_TBL;
CREATE COLUMN TABLE PAL_DISTRQUANTILE_PARAMETER_TBL (
    "PARAM_NAME" VARCHAR (256),
    "INT_VALUE" INTEGER,
    "DOUBLE_VALUE" DOUBLE,
    "STRING_VALUE" VARCHAR (1000)
);
INSERT INTO PAL_DISTRQUANTILE_PARAMETER_TBL VALUES ('LOWER_UPPER', 0, null, null);

DROP TABLE PAL_DISTRQUANTILE_RESULT_TBL;
CREATE COLUMN TABLE PAL_DISTRQUANTILE_RESULT_TBL (
    "INPUT_DATA" DOUBLE,
    "QUANTILE" DOUBLE
);

DO BEGIN
  lt_data = SELECT * FROM PAL_DISTRQUANTILE_DATA_TBL;
  lt_distrparam = SELECT * FROM PAL_DISTRQUANTILE_DISTRPARAM_TBL;
  lt_param = SELECT * FROM PAL_DISTRQUANTILE_PARAMETER_TBL;
  CALL _SYS_AFL.PAL_DISTRIBUTION_QUANTILE (:lt_data, :lt_distrparam, :lt_param, lt_result);
  INSERT INTO PAL_DISTRQUANTILE_RESULT_TBL SELECT * FROM :lt_result;
END;

SELECT * FROM PAL_DISTRQUANTILE_RESULT_TBL;
