Как работает медианная функция в Sql Server - PullRequest
1 голос
/ 06 февраля 2012

В Oracle это работает хорошо ......

Запрос к оракулу - как следует

Select   COMPONENT_ID, 
         COMPONENT_NAME, 
         POSITION_ID, 
         POSITION_NAME, 
         CHANNEL_ID, 
         CHANNEL_NAME, 
         Max(METRIC) as METRIC, 
         Max(TTD_ATTN) as TTD_ATTN_Max, 
         Min(TTD_ATTN) as TTD_ATTN_Min, 
         Avg(TTD_ATTN) as TTD_ATTN_Avg, 
         Median(TTD_ATTN) as TTD_ATTN_Med, 
         StdDev(TTD_ATTN) as TTD_ATTN_StdDev, 
         Max(COMPONENT_NO) as COMPONENT_NO,
         DATAMONTH, 
         CHANNEL_ID||'_'||POSITION_ID as CHANNEL_POSITION,    
         CHANNEL_NAME||'_'||POSITION_NAME as CHANNEL_POSITION_NAME 
from     SCNCAAF0461A1894981868ABA.PB36E6D13A82C4609B9488950 
Group By COMPONENT_ID,
         COMPONENT_NAME,
         POSITION_ID,
         POSITION_NAME,
         CHANNEL_ID,
         CHANNEL_NAME,
         DATAMONTH

Но для SQL Server появляется ошибка

Select   COMPONENT_ID,
         COMPONENT_NAME,
         POSITION_ID,
         POSITION_NAME,
         CHANNEL_ID,
         CHANNEL_NAME,
         max(METRIC) AS METRIC,
         max(TTD_ATTN) AS TTD_ATTN_Max,
         min(TTD_ATTN) AS TTD_ATTN_Min,
         avg(TTD_ATTN) AS TTD_ATTN_Avg,
         Median(TTD_ATTN) AS TTD_ATTN_Med,
         stdev(TTD_ATTN) AS TTD_ATTN_StdDev,
         max(COMPONENT_NO) AS COMPONENT_NO,
         DATAMONTH,
         ISNULL(CHANNEL_ID, '') + '_' + ISNULL(POSITION_ID, '') AS CHANNEL_POSITION,
         ISNULL(CHANNEL_NAME, '') + '_' + ISNULL(POSITION_NAME, '') AS CHANNEL_POSITION_NAME 
from     SCNCAAF0461A1894981868ABA.PB36E6D13A82C4609B9488950 
Group By COMPONENT_ID,    
         COMPONENT_NAME,
         POSITION_ID,
         POSITION_NAME,
         CHANNEL_ID,
         CHANNEL_NAME,
         DATAMONTH

ОШИБКА: оператор выбора не может быть правильно проанализирован. Выходная таблица не может быть сгенерирована.

Я думаю, что это проблема в Медиане Функции. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 06 февраля 2012

MEDIAN не существует в SQL Server - даже в SQL Server 2012 (пока не будет RTM).

http://msdn.microsoft.com/en-us/library/ms173454(v=sql.110).aspx

Вопрос о том, как рассчитать медиану с помощью SQLСервер спросил / ответил здесь .

...