Как округлить процентное вычисление в SQL? - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу, чтобы приведенный ниже процентный расчет был с точностью до 2 десятичных знаков.

 SELECT 
        (SUM(recovered)/SUM(confirmed_cases)*100) AS recovery_rate
    FROM corona 

Однако следующее не работает:

SELECT 
    ROUND((SUM(recovered)/SUM(confirmed_cases)*100), 2) AS recovery_rate
FROM corona

Я подозреваю, что это проблема типа данных, так как ROUND () принимает число в качестве первого аргумента, и я угадывая мой SUM (...) процентное вычисление не число.

Что за исправление? Кроме того, есть ли общая процентная функция в SQL?

1 Ответ

1 голос
/ 16 февраля 2020

Проблема, вероятно, в целочисленном делении, но это зависит от базы данных. Вы не упоминаете базу данных или типы ваших столбцов, но 1/2 = 0, а не 0,5 в базе данных, такой как SQL Сервер, который выполняет целочисленное деление

Это легко исправить. Просто измените 100 на 100.0:

SELECT ROUND(SUM(recovered) * 100.0 / SUM(confirmed_cases), 2) AS recovery_rate
FROM corona
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...