У меня есть таблица в PostgreSQL (mixbest) с 73018 строками. Поля, которые я хочу, чтобы выбрать являются:PostgreSQL: SQLstate: 22003 числовое переполнение
sample integer
m integer,
pciv double precision,
aggrec double precision
soil character(1)
Я пытаюсь ОТБОРНЫМ, но я получаю следующее сообщение об ошибке: SQLSTATE 22003 числового переполнении. Мой выбор:
SELECT sample, m, 1-(EXP(SUM(LN(1-pciv)))) pciv, avg (aggrec) aggrec_avg, soil
FROM mixbest
GROUP BY sample, m, soil;
Я знаю, что проблема заключается в EXP() из-за я попробовал то же выбрать с выражением (SUM (LN (1-pciv)))) и я не получаю такая же ошибка.
Я попытался выполнить команду выбрать только в несколько строк, и она работает:
SELECT sample, m, 1-(EXP(SUM(LN(1-pciv)))) pciv, avg (aggrec) aggrec_avg, soil
FROM mixbest
WHERE sample< 4492 GROUP BY sample, m, soil;
Есть ли у вас какие-либо предложения?
Не могли бы вы показать, что 'выбрать макс (pciv) из (SELECT образца, м, SUM (LN (1-pciv)) pciv, Avg (aggrec) aggrec_avg , почва FROM mixbest GROUP BY образец, м, почва) t; 'дает? –
Несомненно, результат 'select max (pciv) from (SELECT sample, m, SUM (LN (1-pciv)) pciv, avg (aggrec) aggrec_avg, почва FROM mixbest GROUP BY sample, m, почва) t;' is -16.1561356371564 –
Ok, отрицательные числа, теперь вы можете показать результат 'select min (pciv) from (SELECT sample, m, SUM (LN (1-pciv)) pciv, avg (aggrec) aggrec_avg, почва FROM mixbest GROUP По образцу, м, почве) t; –