Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7

AVG в Postgres

25.01.2017, 22:49. Показов 7685. Ответов 8

Студворк — интернет-сервис помощи студентам
Пользуюсь пгадмин3, при написании запроса с AVG выдаёт вот что "HINT: Функция с данными именем и типами аргументов не найдена. Возможно, вам следует добавить явные приведения типов." Собственно сами запросы:
SQL
1
2
3
4
5
6
SELECT 
 id_ds, AVG (sportsmen_results.bally)
FROM 
  public.sportsmen_results
ORDER BY
  id_ds;
Oracle 11 SQL
1
SELECT AVG(bally) AS avg_results FROM sportsmen_results GROUP BY id_sportsmen;
Я понимаю что он сам написал про явные приведения типов, но я не знаю что это такое. Я смотрел в интернете, avg запросы составляются также как и обычный sql. В общем вопрос такой: или я дурак, или лыжи не едут? Объясните пожалуйста новичку в чем ошибка, и как такое исправляется.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2017, 22:49
Ответы с готовыми решениями:

Оптимизирование компьютера средствами AVG AntiVirus Free Edition 2014 и AVG PC TuneUp
Оптимизирование с помощью AVG AntiVirus Free Edition 2014 и AVG PC TuneUp. Всем добрый день. Установил вчера AVG AntiVirus Free Edition...

Руссификатор к Avg
У меня установлен антивирус AVG7.5 можно ли его руссифицировать? Некоторые советуют поставить nod32 вместо AVG. Какой лучше?

Выборка по AVG
Есть таблица сотрудников, есть поле дата рождения. Функцией получаю возраст каждого сотрудника. Далее хочу получить одно единственное...

8
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
26.01.2017, 03:39
какой тип данных у поля bally в таблице sportsmen_results???
покажите код CREATE TABLE sportsmen_results ....
0
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7
26.01.2017, 04:30  [ТС]
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE PUBLIC.sportsmen_results
(
  id_results INTEGER NOT NULL DEFAULT NEXTVAL('auto_id_results'::regclass),
  id_ds INTEGER,
  bally character varying(30),
  distance character varying(50),
  CONSTRAINT sportsmen_results_pkey PRIMARY KEY (id_results),
  CONSTRAINT sportsmen_results_id_ds_fkey FOREIGN KEY (id_ds)
      REFERENCES PUBLIC.danniye_sportsmenov (id_ds) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE PUBLIC.sportsmen_results
  OWNER TO postgres;
При обычном sql запросе (на MySQL проверялось), всё работает как надо, среднее арифметическое считает
0
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
26.01.2017, 05:18
У вас bally текстовое поле. Да, его надо явно привести к числовому типу, потому что функция AVG у PG существует только для числовых типов. И в HINT как раз об этом говориться.
Попробуйте так AVG(CAST(bally as integer))
0
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7
26.01.2017, 05:33  [ТС]
Благодарю. Уже есть сдвиг. Но появился еще вопрос: у меня там в баллах число с плавающей точкой, при integer пишет "неверное значение для целого числа: "98,0 по итогу всех прыжков"", при замене на real или double precision, а также float, выдает "неверный синтаксис для типа real: "98,0 по итогу всех прыжков"". Как тут действовать? Извиняюсь за такие глупые вопросы, но я пока учусь укрощать его.
0
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
26.01.2017, 05:38
попробуйте в bally запятую (",") заменить на точку (".") и потом уже привести к real или double precision
SQL
1
AVG(CAST(REPLACE(bally, ',', '.') AS REAL))
0
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7
26.01.2017, 05:53  [ТС]
Все равно пишет "неверный синтаксис для типа real:". А почему баллы вошли в скобки replace? При чем без кавычек
0
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
26.01.2017, 06:27
Лучший ответ Сообщение было отмечено uhb9999 как решение

Решение

где-то у вас ошибка в данных что ли...
должно работать, вот для теста сделал быстро

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE PUBLIC.test
(
  id SERIAL,
  bally CHARACTER VARYING(30)
);
 
INSERT INTO test (id, bally) VALUES
(1, '98,0'),
(2, '101,0'),
(3, '102,0'),
(4, '105,67');
 
SELECT avg(CAST(REPLACE(bally, ',', '.') AS DOUBLE PRECISION))
FROM test;
в результате получаем 101.6675

Цитата Сообщение от uhb9999 Посмотреть сообщение
А почему баллы вошли в скобки replace?
значение поля bally - это строка.
нужно в этой строке заменить запятую на точку, и результат замены привести к вещественному типу,
от которого уже считать среднее.
1
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7
26.01.2017, 06:46  [ТС]
Спасибо большое. Понял что нужно поменять тип данных, и нормально за работает. Насчет replace и баллов спросил потому что в документах у реплейса только в кавычках все параметры, поэтому было непонятно как происходит выборка. Вы ответили, очень коротко и ясно. Еще раз спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2017, 06:46
Помогаю со студенческими работами здесь

Вычисление AVG
Здравствуйте, дорогие форумчане, эксперты Excel! Помогите, пожалуйста! Имеется файл, данные которого будут меняться (точнее...

AVG полей
добрый день делаю мини прогу столкнулся с проблемой у меня 2 таблицы счет и покупатели покупатели ID фио 1 иванов 2 степанов ...

Найти avg
Нужно сделать средне арифм столбца Итоговая стоим. Перепробовал много способов не получилось.. select Price_of_car_in_1day as ,...

Запрос avg
И снова здравствуйте! Помогите, пожалуйста, написать запрос "Средняя цена билета"... Это же запрос avg в запросе суммы нужно...

Установка AVG
не могу установить AVG free 2015 антивирус, пишет ошибку 0XC0070659, пару дней назад были вирусы - rusearcher в googl chrome сидел - вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru