Избегайте вложенных совокупных ошибок с помощью coalesce () - PullRequest
0 голосов
/ 16 июня 2020

У меня сейчас есть запрос с использованием coalesce, который работал на сервере SQL, однако он не работает в Amazon Redshift. Есть ли способ более уместно написать это для использования в Redshift:

    coalesce(sum(Score)/nullif(sum(ScorePrem),0),0) as percent

1 Ответ

0 голосов
/ 17 июня 2020

Рассмотрите возможность выполнения агрегированного запроса как подзапроса или CTE, а затем обработайте преобразование или вторичные вычисления во внешнем основном запросе.

WITH agg AS (
  SELECT calendar_month_id
         ,day_of_month
         ,month_name
         ,DaysRemaining
         ,RPTBRANCH
         ,0 AS TotalGrp
         ,SUM(Score) AS Score
         ,SUM(ScorePrem) AS ScorePrem
  FROM #temp_Score
  GROUP BY calendar_month_id
         , day_of_month
         , month_name
         , DaysRemaining
         , RPTBranch
)

SELECT calendar_month_id
       ,day_of_month
       ,month_name
       ,DaysRemaining
       ,RPTBRANCH
       ,TotalGrp
       ,Score
       ,ScorePrem
       ,COALESCE(Score/NULLIF(ScorePrem,0),0) AS percent
FROM agg
...