Каков наилучший способ вычисления AUC в SQL?
Вот что я получил (при условии таблицы T (label, confid) и label = 0,1):
SELECT sum(cumneg * label) * 1e0 / (sum(label) * sum(1-label)) AS auc
FROM (
SELECT label,
sum(1-label) OVER(ORDER BY confid ROWS UNBOUNDED PRECEDING) (BIGINT) cumneg
FROM T
) t;
Мне нужно умножить на 1e0 в Teradata, чтобы получить реальный результат. Применение Bigint необходимо, чтобы избежать переполнения.