2016-06-08 4 views
1

У меня есть этот запрос, где я пытаюсь ввести нестатическое значение в PERCENTILE_CONT:функция Percentile_Cont ошибка метания

SELECT perf2.REVIEW_PERIOD 
    , PERCENTILE_CONT(goalsASP.GOAL*.01) WITHIN GROUP (ORDER BY AVG_AMT ASC) ast75 
FROM repDB.TBL_PERFORMANCE perf2 JOIN 
     pz.CATEGORY C on perf2.DEPTCAT = C.id JOIN 
     repDB.TBL_GOALS_MATRIX goalsASP ON C.NAME = goalsASP.DIMENSION_Y 
             and perf2.REVIEW_PERIOD = goalsASP.SNAP_NAME 
             and goalsASP.DIMENSION_X = 'asp' 
GROUP BY perf2.REVIEW_PERIOD 

Ошибка выброшена является:

ORA-30497: Argument should be a constant or a function of expressions in GROUP BY. 30497. 00000 - "Argument should be a constant or a function of expressions in GROUP BY."

Это в view, он отлично работал, когда goalsASP.GOAL*.01 был .75, и у меня есть хранимая процедура, в которой кормление столбца в качестве аргумента работает просто отлично, поэтому я как бы не понимаю, что я здесь делаю неправильно.

ответ

0

Got it. Это не проблема Percentile_Cont, это проблема правильной группировки.

Для устранения I изолированного goalsASP.GOAL

SELECT perf2.REVIEW_PERIOD 
    , goalsASP.GOAL 
FROM repDB.TBL_PERFORMANCE perf2 JOIN 
     pz.CATEGORY C on perf2.DEPTCAT = C.id JOIN 
     repDB.TBL_GOALS_MATRIX goalsASP ON C.NAME = goalsASP.DIMENSION_Y 
             and perf2.REVIEW_PERIOD = goalsASP.SNAP_NAME 
             and goalsASP.DIMENSION_X = 'asp' 
GROUP BY perf2.REVIEW_PERIOD 

Тогда стало ясно, что мне нужно также группа по goalsASP.GOAL.

Итак, ответ:

SELECT perf2.REVIEW_PERIOD 
    , PERCENTILE_CONT(goalsASP.GOAL*.01) WITHIN GROUP (ORDER BY AVG_AMT ASC) ast75 
FROM repDB.TBL_PERFORMANCE perf2 JOIN 
     pz.CATEGORY C on perf2.DEPTCAT = C.id JOIN 
     repDB.TBL_GOALS_MATRIX goalsASP ON C.NAME = goalsASP.DIMENSION_Y 
             and perf2.REVIEW_PERIOD = goalsASP.SNAP_NAME 
             and goalsASP.DIMENSION_X = 'asp' 
GROUP BY perf2.REVIEW_PERIOD, 
     goalsASP.GOAL 

Вид неловко, что я не видел, что раньше, но усталые глаза пропустить этот материал.

Смежные вопросы