2017-01-05 2 views
0
SELECT goals, games, ROUND(goals/games, 2) AS "goalspergame" 
FROM bgoals 
ORDER BY goals DESC, games ; 

Это всегда дает 1,00 и 0,00 в результате вместо точного числа, округленного на два десятичных знака. Если я поставил 100 * перед целями, тогда я получаю полезный результат в процентах, однако я не хочу иметь его в процентах.Расчет всегда округляется

Что можно сделать, чтобы получить полезный результат?

Я уже использовал функцию поиска, но до сих пор ничего не работало. This кажется хорошим, но я либо не понимаю, как правильно его использовать, либо не работает.

+0

try 'ROUND (CAST (цели AS FLOAT)/games, 2)' - не уверен, что он будет работать с mysql, хотя – Akash

+0

Спасибо, но если я попытаюсь это сделать, то получаю сообщение об ошибке, команды не существует. Другой пользователь предоставил легкое решение, которое работает, хотя – hacker1337ninja

ответ

0

Похоже, вы получаете целочисленное деление, я предполагаю, что goals и games являются целыми числами. Простое исправление умножить на 1,0, чтобы получить десятичную результат:

SELECT goals, games, ROUND(goals*1.0/games, 2) AS "goalspergame" 
FROM bgoals 
ORDER BY g.goalsscored DESC, g.ggamesplayed ; 

типы Integer, при делении, возвращает целые результаты, но если либо числитель или знаменатель является десятичным, он возвращает десятичный результат.

+0

Спасибо, это сработало! Не знаю, что я должен делать это для целых чисел. – hacker1337ninja

+0

@ hacker1337ninja Если бы ответ сработал для вас, было бы вежливо принять ответ и перенести его. – G5W

0

ли эта работа:

'SELECT goals, games, ROUND(CAST(goals AS FLOAT)/CAST(games AS FLOAT), 2) AS "goalspergame" 
FROM bgoals 
ORDER BY g.goalsscored DESC, g.ggamesplayed' 
Смежные вопросы