Добрый день.Округление чисел в столбце в Postgre до ближайшего целого числа
У меня есть несколько таблиц, заполненных информацией о странах. В одной из этих таблиц содержится показатель численности населения каждой страны; другой - процентное соотношение говорящих на каждом языке.
Мы должны взять эти два номера и сделать столбец, в котором указано, сколько динамиков имеется для каждого языка ... в основном, мы их умножаем. Это достаточно просто. Однако не просто показать их в том виде, в котором мы должны.
Вот запрос я использую:
SELECT country.name AS \"country\",
city.name AS \"capital\",
country_language.language,
(country.population * country_language.percentage) AS \"speakers\"
FROM lab2.country, lab2.country_language, lab2.city
WHERE country.country_code = country_language.country_code
AND city.id = country.capital
AND country_language.is_official = true
ORDER BY country.name,
(country_language.percentage * country.population) DESC;
Это то, что первая результирующая таблица ячейка заполнена:
1190528034.66797
И вот что он должен быть:
11905280
Обычно я просто делаю эти целые числа одного или другого, и это решит проблему. Но, как вы видите, числа, которые я хочу округлить, не обязательно появляются после десятичной точки.
Что мне делать, чтобы округлить их?
Вот мой сайт (это запрос 5, который вы хотите выбрать):
http://babbage.cs.missouri.edu/~asm3kf/cs3380/lab2/lab2.php
и вот страница мы должны соответствовать:
http://babbage.cs.missouri.edu/~klaricm/cs3380/lab2/lab2.php
Вы будете видеть, что несоответствие проходит через всю таблицу.
Заранее благодарен!
EDIT:
Я обновил сайт, включив в него численности населения и процента. Надеюсь, это поможет в некотором роде.
с использованием потолка/пола/раунда может помочь, хотя ожидаемый результат на 2 порядка меньше фактического, это правильно или вы пропускаете некоторые цифры? – Marc
Похоже, ваш 'country_language.percentage' сохраняется в процентах, т.е. '75%', а не десятичное значение. '.75'. Итак, первым шагом было бы их преобразование, а затем использовать ['round()') (http://www.postgresql.org/docs/9.1/static/functions-math.html) – Sean
Шон, Процент числа сохраняются как реальные числа, в соответствии с схемой. – nerdenator