Вопрос № 41849: Здравствуйте Уважаемые эксперты!
у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него!
И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых. ...
Вопрос № 41.849
Здравствуйте Уважаемые эксперты!
у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него!
И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых.
Отправлен: 02.05.2006, 10:03
Вопрос задал: Бутенко А (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Архангельский Андрей Германович
Здравствуйте, Бутенко А!
Функция AVG не знает какая точность используется. Она использует точность тех данных с которыми работает. Но ты можешь привести результат к нужному формату используя функцию форматирования в Delphi или C++
ЕСли используешь Interbase/Firebird, то можно написать свою функцию (UDF) для форматирования результатов
--------- Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Отвечает: Kazakh
Здравствуйте, Бутенко А!
ИМХО, это настраивается (отбражение чисел) в СУБД.
То есть на самом деле расчет идет с точностью, скажем, до 15 знаков, а вам видны не все знаки. Как в Экселе например. Так как не указали какая СУБД, то попробуйте сами поковыряться в насройках или уточните вопрос (укажите используемую СУБД). Или попробуйте использовать каку-нить встроеную функцию, типа format().
--------- Если собеседник затрудняется ответить, значит, вопрос поставлен правильно.
Ответ отправил: Kazakh (статус: 7-ой класс)
Ответ отправлен: 02.05.2006, 10:22
Отвечает: Игорь Елизаров
Здравствуйте, Бутенко А!
допустим, есть база из трех полей
id - уникальный идентификатор
cost - какая-то сумма
gruppa - группа товаров
тогда вычислить среднее значение по каждой группе можно следующим запросом
select sum(cost)/count(id) as avg_for_gruppa, gruppa from test
group by gruppa
С уважением, Игорь
Ответ отправил: Игорь Елизаров (статус: 4-ый класс)
Ответ отправлен: 02.05.2006, 17:10 Оценка за ответ: 5