пятница )))
WITH T AS(
SELECT 1 ID, 4.59 summa FROM dual UNION ALL
SELECT 2 ID, 4.51 summa FROM dual
),
t1 AS(
SELECT ID,
ROUND(summa) summa,
summa-ROUND(summa) DELTA,
SUM(summa-ROUND(summa)) OVER() DELTA_all
FROM T
)
SELECT ID,
summa+
CASE WHEN ROW_NUMBER() OVER(ORDER BY DELTA*DELTA_all desc NULLS LAST) <= ROUND(ABS(DELTA_all)) THEN
SIGN(DELTA_all)
ELSE 0
END summa
FROM t1