Моя таблица выглядит следующим образом:
error | num | date
-------+-------+------------
274 | 38431 | 2016-07-01
389 | 54811 | 2016-07-02
401 | 54465 | 2016-07-03
Я хочу рассчитать, в какие даты «ошибка» составляла более 1% от «num».
В настоящее время я пытаюсь сделать это с этим выражением:
select date, error, num, (100 * (error / num)) as percentage
from DD
limit 3;
Результат, который я получаю, неверен:
date | error | num | percentage
------------+-------+-------+------------
2016-07-01 | 274 | 38431 | 0
2016-07-02 | 389 | 54811 | 0
2016-07-03 | 401 | 54465 | 0
Я получаю то же самое невернорезультат, если я вычитаю 100 *.
С решением ниже,
select DD.*, (100.0 * error/num) as percentage from DD where (100.0 * error /num) > 1.0
Я получаю правильный верхний ряд, но остальные неверные:
error | num | date | percentage
-------+-------+------------+----------------------
1265 | 54642 | 2016-07-17 | 2.3150689945463197
274 | 274 | 2016-07-01 | 100.0000000000000000
389 | 389 | 2016-07-02 | 100.0000000000000000
Iпроверил дату 2016-07-01, и она имеет ошибку 274, но число намного выше.Почему это работает для верхнего ряда, но не для остальных?