【发布时间】:2022-11-18 02:55:47
【问题描述】:
我有 sql 查询,它将计算累计总和等。下面是查询
SELECT
GRP,
category,
price,
units,
CASE WHEN customers > 10 THEN customers ELSE 0 END AS customers_adj,
1.00000 *(
SUM(customers_adj) OVER(PARTITION BY grp, category ORDER BY
FIGURE DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
))/ SUM(customers_adj) OVER (PARTITION BY grp, category) AS cum_max_price_cust
FROM
table_1
问题出在最后一列。它作为 SQL 错误 [100051] [22012] 返回错误:除以零。谁能帮我这个?
【问题讨论】:
-
是否有 sum(customers_adj) OVER (partition by grp, category) = 0 的行?
-
1.00000 *( SUM(customers_adj) OVER(PARTITION BY grp, category ORDER BY FIGURE DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )) 包含一些 0
-
那么当值为零时你希望发生什么?
-
只需在构造时创建一个案例: SELECT...CASE yourValueThatCouldBeZero WHEN 0 THEN valueIfItsZero ELSE something/yourValueThatCouldBeZero END...
标签: sql snowflake-cloud-data-platform mysql-error-1064 snowflake-schema