New issue 218: Ignore division by zero in queries
https://bitbucket.org/blais/beancount/issues/218/ignore-division-by-zero-in-queries
Jakob Schnitzer:
In Fava, the holdings report is generated using the BQL. It would be nice if we could use the following query. However, this query will fail (unless one has no closed holdings), as the average_cost column will be "0/0" or "x/0".
SELECT
units(sum(position)) as units,
number(only(first(cost_currency), cost(sum(position))))/number(only(first(currency), units(sum(position)))) as average_cost,
cost(sum(position)) as book_value,
value(sum(position)) as market_value
WHERE account_sortkey(account) ~ "^[01]"
GROUP BY currency, cost_currency
ORDER BY currency, cost_currency
See also
https://github.com/beancount/fava/issues/645.
> It could spit a warning and ignore that row? Is that reasonable?
I think that just setting the failing table cell to be empty would be ideal. Right now there is no way to run a query where a single cell might contain an invalid decimal operation (and there is now way to prevent the invalid operation as far as I can see). The rest of the offending row would still be useful though.
[If you dislike the idea of silently ignoring such errors, another possibility to address this would be to add some query function that silently swallows all exceptions, like `try(0.0/0.0)`]