powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / проблема с функцией avg()
7 сообщений из 7, страница 1 из 1
проблема с функцией avg()
    #33511372
Abrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sybase ASE. Пишу:
Код: plaintext
1.
select avg(price) from product
Выводит целое число, а должно выводить вещественное
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33511391
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а поле price какого типа ?
если целого?! , то можно предложить
Код: plaintext
1.
select avg(price* 1 . 0 ) from product
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33511426
Abrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да поле целого типа. спасибо за совет, а можно обойтись без дополнительного умножения или надо что б тип был вещественным?
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33511462
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно обойтись без дополнительного умножения или надо что б тип был вещественным

смотря как организовано хранение данных и что хотите получить в итоге
Существует тип money (хотя иногда в поле price может содержаться сумма в копейках - почему и нет)
Если в результате хотите получить вещественное число - то можно воспользоваться вместо домножения на 1.0 приведением типов, например convert:
Код: plaintext
1.
select avg(convert(numeric( 10 , 2 ),price)) from #test
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33511505
Abrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Вся проблема была именно в приведении типов, а price я так, для примера выбрал, мне просто нужно было получить вещественный тип, теперь понял что без приведения не обойтись.
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33511649
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbrikВыводит целое число, а должно выводить вещественное

А кто сказал, что должно выводить вещественное ?
Но лучше не домножать на что-то, а явно привести к нужному типу данных:

select (convert numeric(10,2), avg(xxx) ) ...
...
Рейтинг: 0 / 0
проблема с функцией avg()
    #33512002
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но лучше не домножать на что-то, а явно привести к нужному типу данных:
select (convert numeric(10,2), avg(xxx) ) ...

Это не совсем правильно, точнее не правильно. Если xxx - тип integer, то данное приведение ни к чему хорошему не приведет - т к результат будет "целое вещественное"
Нужно именно
avg(convert(numeric(10,2),xxx))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / проблема с функцией avg()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]