错误:被零除+ PostgrSQL + Rails

问题描述 投票:1回答:2

enter image description here

我在psql中运行此数据库视图时收到以下错误(错误:被零除)。甚至我都无法在Rails控制台中访问我的表。如果有人对此错误有任何解决方案,请对此发表评论,谢谢。

select 
      (exam_id || '00' || quarter)::bigint as id,
      account_id,
      exam_id,
      quarter,
      quarter_label,
      count(id) as assessments,
      max(banding_percentage) as top_assessment_percentage,
      min(banding_percentage) as bottom_assessment_percentage,
      round(avg(banding_percentage),2) as avg_assessment_percentage
    from report_assessments
    group by account_id, exam_id, quarter, quarter_label;
sql ruby-on-rails postgresql view
2个回答
1
投票

为了避免遇到division by zero异常,您应该使用nullif,以便可以捕获此nullif并将其替换为0,例如

null

0
投票

您需要做这样的事情。在我的情况下有效:

WITH j (v1,v2) AS (
  VALUES (1.0,0.0),(10.0,3.0)
) 
SELECT v1/nullif(v2,0) AS div FROM j;

        div         
--------------------

 3.3333333333333333
(2 Zeilen)
© www.soinside.com 2019 - 2024. All rights reserved.