Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 377
∙ повысить рейтинг »
Степанов Иван /REDDS
Статус: 3-й класс
Рейтинг: 142
∙ повысить рейтинг »
Alexander Babich
Статус: Профессор
Рейтинг: 75
∙ повысить рейтинг »

∙ Базы данных

Номер выпуска:515
Дата выхода:09.12.2016, 10:15
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Подписчиков / экспертов:16 / 10
Вопросов / ответов:3 / 12

Консультация # 41849: Здравствуйте Уважаемые эксперты! у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него! И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых. ...
Консультация # 171225: Здравствуйте есть 4 таблицы- категории товаров,виды товаров,покупки и пользователи. Структура таблиц в приложении Нужно выбрать пользователя, который закупил больше всего,например, жестких дисков. Т.е. в 1м запросе сделать обращение к 4м таблицам Пока что получилось выбрать id пользователей и число закупленных ими товаров(код в прил...
Консультация # 106054: Здравствуйте! Подскажите, пожалуйста, как отсортировать строки по текстовому полю, в котором хранятся числа? При этом чтобы сравнение происходило, именно как с числами. Т.е. натуральная сортировка... Спасибо...

Консультация # 41849:

Здравствуйте Уважаемые эксперты!
у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него!
И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых.

Дата отправки: 02.05.2006, 10:03
Вопрос задал: Бутенко А
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Архангельский Андрей Германови:

Здравствуйте, Бутенко А!

Функция AVG не знает какая точность используется. Она использует точность тех данных с которыми работает. Но ты можешь привести результат к нужному формату используя функцию форматирования в Delphi или C++
ЕСли используешь Interbase/Firebird, то можно написать свою функцию (UDF) для форматирования результатов

Консультировал: Архангельский Андрей Германови
Дата отправки: 02.05.2006, 10:18
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Kazakh:

Здравствуйте, Бутенко А!
ИМХО, это настраивается (отбражение чисел) в СУБД.
То есть на самом деле расчет идет с точностью, скажем, до 15 знаков, а вам видны не все знаки. Как в Экселе например. Так как не указали какая СУБД, то попробуйте сами поковыряться в насройках или уточните вопрос (укажите используемую СУБД). Или попробуйте использовать каку-нить встроеную функцию, типа format().

Консультировал: Kazakh
Дата отправки: 02.05.2006, 10:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Игорь Елизаров:

Здравствуйте, Бутенко А!
допустим, есть база из трех полей
id - уникальный идентификатор
cost - какая-то сумма
gruppa - группа товаров

тогда вычислить среднее значение по каждой группе можно следующим запросом
select sum(cost)/count(id) as avg_for_gruppa, gruppa from test
group by gruppa
С уважением, Игорь

Консультировал: Игорь Елизаров
Дата отправки: 02.05.2006, 17:10
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 171225:

Здравствуйте
есть 4 таблицы- категории товаров,виды товаров,покупки и пользователи. Структура таблиц в приложении
Нужно выбрать пользователя, который закупил больше всего,например, жестких дисков.
Т.е. в 1м запросе сделать обращение к 4м таблицам

Пока что получилось выбрать id пользователей и число закупленных ими товаров(код в приложении)
последний шаг-выбор имени пользователя который закупил больше всего жестких дисков никак не получается(

Дата отправки: 11.08.2009, 07:39
Вопрос задал: Sov
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Digitall:

Здравствуйте, Sov.

предлагаю вариант для оракла (см. вложение).
в данном случае выбирается только один пользователь (не учитывается вариант, когда несколько пользователей совершили одинаковое количество покупок)

Приложение:

Консультировал: Digitall
Дата отправки: 11.08.2009, 09:44

5
Спасибо)
-----
Дата оценки: 12.08.2009, 18:26

Рейтинг ответа:

НЕ одобряю +1 одобряю!


Консультирует BahuL:

Здравствуйте, Sov.

Для MySQL вот такой запрос

Приложение:

Консультировал: BahuL
Дата отправки: 11.08.2009, 10:45

5
Спасибо большое!)
-----
Дата оценки: 12.08.2009, 18:27

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует lamed (Академик):

Здравствуйте, Sov.
Ответ в приложении. Проверен на FireBird 2.0, хотя системно-зависимым является только LEFT OUTER JOIN, то есть должно идти и на других СУБД.
Три разных способа извлечения: ALL, EXISTS, IN применил умішленно, можно было бьі обойтись только использованием EXISTS / NOT EXISTS

Приложение:

Консультировал: lamed (Академик)
Дата отправки: 12.08.2009, 16:00

5
Спасибо,проверено в mysql,работает)
-----
Дата оценки: 12.08.2009, 18:26

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 106054:

Здравствуйте!
Подскажите, пожалуйста, как отсортировать строки по текстовому полю, в котором хранятся числа? При этом чтобы сравнение происходило, именно как с числами.

Т.е. натуральная сортировка...
Спасибо

Дата отправки: 19.10.2007, 13:41
Вопрос задал: Stals
Всего ответов: 6
Страница онлайн-консультации »


Консультирует Vas177:

Здравствуйте, Stals!

Например, в ORACLE:

order by To_Number( СТРОКА )

Консультировал: Vas177
Дата отправки: 19.10.2007, 13:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Delph:

Здравствуйте, Stals!

Строго говоря нужно использовать функцию Cast, но её формат зависит от используемой СУБД. К тому же строка в принципе может содержать не только числа, но и нечисловые символы (знаки препинания, буквы... всё что угодно). Впрочем, попробуйте такой обобщённый вариант:

SELECT ...
FROM ...
ORDER BY Length(Field_Name), Field_Name

Этот оператор отсортирует сначала по длине строк, а строки с одинаковыми длинами - по содержимому этих строк. Должно сработать. Вместо Field_Name подставьте реальное название Вашего текстового поля.

Консультировал: Delph
Дата отправки: 19.10.2007, 14:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Stals!
..
ORDER BY Field * 1
Не знаю примет ли MySql, MsSQL эту строку понимает.
Евгений.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 19.10.2007, 20:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Errandir:

Здравствуйте, Stals!

Вот это должно работать почти на всём:

SELECT * FROM tab ORDER BY CAST(strnum AS INTEGER);

Консультировал: Errandir
Дата отправки: 19.10.2007, 23:20
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, Stals!
Попробуйте для sql2000-2005
order by convert(int, id)
т.е. преобразовать поле к числовому типу, но если в поле будут значения не числового типа то будет ошибка.

Консультировал: Челноков Виктор Альбертович
Дата отправки: 21.10.2007, 11:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Dubrovin:

Здравствуйте, Stals!

конвертни строку в число и сортируй )

Консультировал: Dubrovin
Дата отправки: 22.10.2007, 12:45
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное