функция журнала в красном смещении - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь выполнить следующий запрос.

CREATE TEMP TABLE tmp_variables AS SELECT 
   0.99::numeric(10,8) AS y ;

select y, log(y) from tmp_variables

Это дает мне следующую ошибку.Есть ли способ обойти это?

[Amazon](500310) Invalid operation: Specified types or functions (one per INFO message) not supported on Redshift tables.;
Warnings:
Function "log(numeric,numeric)" not supported.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Для функции LOG требуется аргумент типа данных "двойная точность".Ваш код передается с типом данных «числовой», поэтому вы получаете сообщение об ошибке.

Это будет работать:

CREATE TEMP TABLE tmp_variables AS 
   SELECT 0.99::numeric(10,8) AS y ;

select y, log(cast(y as double precision)) from tmp_variables;
0 голосов
/ 18 октября 2018

Обходной путь должен использовать вместо этого «float».

CREATE TEMP TABLE tmp_variables AS SELECT 
   0.99::float AS y ;
select y, log(y) from tmp_variables

работает нормально и возвращает

y log

0.99 -0.004364805402450088

...