Как отобразить значение функции AVG до двух знаков после запятой в SQL?

0
select avg(purch_amt) from orders;

Я взял среднее количество и показывает значение до нескольких десятичных знаков, и я хотел бы ограничить его до двух знаков после запятой. Вот что я пробовал: - select cast(avg(purch_amt) as decimal(10,2)) from orders; пожалуйста, ответьте, содержащий как операции (первое среднее, так и преобразование). Я хотел бы знать правильный синтаксис для написания обоих утверждений вместе.

  • 2
    Для начала, когда вы говорите о DISPLAY, вам нужно указать WHERE . Во-вторых (и здесь я предполагаю, что у вас есть приложение, которое получает значение и отображает его), правильный способ назначения ролей (то есть БД с некоторой бизнес-логикой и пользовательским интерфейсом) состоит в том, чтобы позволить пользовательскому интерфейсу обрабатывать это.
Теги:

3 ответа

1

Вы можете обновить свой запрос до:

select ROUND (avg(purch_amt),2) as Average from orders;
0

Мой предпочтительный метод заключается в том, чтобы использовать соответствующее десятичное значение:

select cast(avg(purch_amt) as decimal(10, 2))
from orders;

Это немного отличается от round(), хотя оба обычно дают одинаковый результат. Как поясняет документация для round():

Возвращаемое значение имеет тот же тип, что и первый аргумент (при условии, что он является целым, двойным или десятичным)

Это означает, что то, что отображается в приложении, может по-прежнему показывать больше (или меньше) числа десятичных знаков. Изменив тип, приложение будет знать, сколько десятичных разрядов должно быть в результате.

Из этого примера видно, что round() не меняет тип данных - следовательно, это может не изменить представление в инструменте.

0

Вы можете использовать ROUND как

SELECT ROUND(AVG(purch_amt), 2) AS 'Average' from orders

или если вы хотите округлить все значения столбцов до вычисления среднего значения

SELECT AVG(ROUND(purch_amt, 2)) AS 'Average' from orders
  • 0
    это будет округлять результат, что если я просто хочу взять цифры как есть. например, - 147,346
  • 0
    если вы хотите округлить значения столбца перед усреднением, выберите SELECT AVG (ROUND (purchase_amt, 2)) AS 'Average' из заказов

Ещё вопросы

Сообщество Overcoder
Наверх
Меню