0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 7

AVG в Postgres

25.01.2017, 22:49. Показов 7763. Ответов 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
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
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
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
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
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
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
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru