![]() |
|
Модераторы: skyboy |
![]()
|
|
| Mushu |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 20.7.2004 Репутация: нет Всего: -5 |
Есть таблица
_____________________________ nomer_voprosa (int) | otvet (ENUM)| 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 2 | 0 | 2 | 1 | 2 | 1 | 2 | 0 | _____________________________ Вопрос как подсчитать среднеарифметический ответ по полю OTVET Должно получиться : 0,25 А получается : 1.25
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
| Mushu |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 20.7.2004 Репутация: нет Всего: -5 |
А это как..? тип в поле менять не льзя
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
итак, информация.
в таблице данные типа enum хранятся не значениями, а индексами. т.е. у тебя реально в таблице хранятся не строки "0" и "1"(enum все же со строковыми значениями работает), а числа 1 и 2(потому как индекс 0 отведен для пустой строки; индекс 1 - первый элемент множества, т.е. "0" в твоем случае; индекс 2 - второй элемент множества - "1" в твоем случае). потому при попытке произвести арифметическую операцию(то ли сложение, то ли подсчет среднего) используются не значения enum'a(которые строковые по определению и могут быть любыми по содержанию), а индексы. соотвественно, для твоего случая будет не ("0" + "1" + "0" + "0") / 4, а (1 + 2 + 1 + 1) / 4. Что дает вполне корректное с точки зрения СУБД значение 1,25 Иллюстрацией к вышесказанному будет запрос:
Добавлено через 5 минут и 15 секунд запрос вернет тебе не 0/1 в поле otvet, а 1 и 2 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |