Re: division by zero issue - Mailing list pgsql-general

From Guy Fraser
Subject Re: division by zero issue
Date
Msg-id 41487579.7050405@incentre.net
Whole thread Raw
In response to division by zero issue  (Greg Donald <destiney@gmail.com>)
List pgsql-general
Maybe try something like this :

SELECT
  task_id,
  CASE
   WHEN task_count = '0'
   THEN '0'::int4
   ELSE (task_duration *
    task_duration_type /
    task_count) as hours_allocated
  END
FROM
  (SELECT
    task_id,
    task_duration,
    task_duration_type,
    count(user_tasks.task_id) as task_count
  FROM tasks
  LEFT JOIN user_tasks
    ON tasks.task_id = user_tasks.task_id
  WHERE tasks.task_milestone = '0'
  GROUP BY
    tasks.task_id,
    task_duration,
    task_duration_type
  ) as intermediate
;


This was done off the cuff so it may not work as is.

Greg Donald wrote:

>Converting some MySQL code to work with Postgres here.
>
>I have this query:
>
>SELECT
>  tasks.task_id,
>  (tasks.task_duration * tasks.task_duration_type /
>count(user_tasks.task_id)) as hours_allocated
>FROM tasks
>LEFT JOIN user_tasks
>  ON tasks.task_id = user_tasks.task_id
>WHERE tasks.task_milestone = '0'
>GROUP BY
>  tasks.task_id,
>  task_duration,
>  task_duration_type
>;
>
>The problem is that sometimes count(user_tasks.task_id) equals zero,
>so I get the division by zero error.  Is there a simple way to make
>that part of the query fail silently and just equal zero instead of
>dividing and producing the error?
>
>TIA..
>
>
>


pgsql-general by date:

Previous
From: Jean-Luc Lachance
Date:
Subject: Re: division by zero issue
Next
From: John Sidney-Woollett
Date:
Subject: Re: psql + autocommit