[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите правильно написать скрипт MySql
AlexanderShad
Доброго времени суток..
прошу помочь правильно написать скрипт )

У мну есть таблица... мне надо вывести из нее данные.. с сортировкой.. но сортировка должна быть по среднему арифметическому.. я пишу

select id,(((2*a2)+(3*a3)+(4*a4)+(5*a5))/(a2+a3+a4+a5)) as oсn from table where nr<>135 order by ocn ASC

такая постановка работает.. но выдает чтото очень странное...

Пробовал еще так...

select id from table where nr<>135 order by (((2*a2)+(3*a3)+(4*a4)+(5*a5))/(a2+a3+a4+a5)) ASC

получается тоже чтото непонятное...

а2-а5 - это столбцы .. т.е.
id,nr, a2,a3,a4,a5

в общем мне надо выбрать данные с сортировкой по среднеарифметическому...
не знаю .. понятно ли объяснил))

заранее спасибо )



Спустя 12 минут, 45 секунд (16.02.2011 - 09:32) AlexanderShad написал(а):
все... решил...


select id,(((2*a2)+(3*a3)+(4*a4)+(5*a5))/(a2+a3+a4+a5)) as oсn from table where nr<>135 order by ocn ASC

это правильно...

просто у меня заминка была в другом... она фильтрует правильно (сортирует) но не учитывает количество оценок )))
а сортировка по среднему работает хорошо.

Спустя 9 минут, 58 секунд (16.02.2011 - 09:42) Snus написал(а):
AlexanderShad
Извращенство какое-то ваш запрос smile.gif

Спустя 5 минут, 3 секунды (16.02.2011 - 09:47) AlexanderShad написал(а):
Цитата (Snus @ 16.02.2011 - 06:42)
AlexanderShad
Извращенство какое-то ваш запрос smile.gif

ну .... дык надо было решать... вот.. rolleyes.gif
сейчас буду дальше думать... как учесть количества... rolleyes.gif

Спустя 2 минуты, 14 секунд (16.02.2011 - 09:50) Snus написал(а):
AlexanderShad
А что содержат в себе столбцы a1, a2 ... ?

Спустя 8 минут, 20 секунд (16.02.2011 - 09:58) AlexanderShad написал(а):
Snus
цифры..
к примеру a2 - 12 id - 3
студент иванов иван иванович (id=3) получил 12 двоек

также и с остальными...

a3-3 a5-6 id-1

студентка федерова (id=1) получила 3 тройки и 6 пятерок...

a5-1 id-13

студент шапошников (id=13) получил 1 пятерку

т.е. если у человека будет к примеру оценка средняя 5 и 5 пятерок.. это хорошо
у второго будет средняя 4.8 но у него будет 4 пятерки и 1 тройка.. у третьего будет средняя 5 а пятерка всего одна ... то про сортируется
1. у кого 4 пятерки и 1 тройка
2. у кого 1 пятерка
3. у кого пять пятерок

а мне сейчас надо добиться чтобы было

1. у кого 1 пятерка
2. у кого 4 пятерки и 1 тройка
3. у кого 5 пятерок...

ну это уже не совсем сортировка по среднему получается )))

Спустя 47 секунд (16.02.2011 - 09:59) AlexanderShad написал(а):
но с учетом средней )

Спустя 4 минуты, 30 секунд (16.02.2011 - 10:03) AlexanderShad написал(а):
в общем это тоже решил
SELECT id
FROM table where nr<>135
ORDER BY a5, a4, a3, a2 ASC

но это без учета средней.... и тоже не совсем так ....

ладно.. я уже сам запутался что мне надо )))
прошу извинения если что )

Спустя 6 минут, 59 секунд (16.02.2011 - 10:10) Snus написал(а):
AlexanderShad
А для чего нужно было под каждую оценку делать отдельный столбец?
Почему нельзя было сделать
userId | score

3 | 2
3 | 2
3 | 5
4 | 3

?

Спустя 6 минут, 3 секунды (16.02.2011 - 10:16) AlexanderShad написал(а):
Snus
ммм.. так дубли получаются.. но идею я понял...
просто изначально такой задачи не было... нужно было просто общее кол-во 2, 3 и тд.. сколько человек заработал так сказать.. а среднюю высчитать по нему проблемы не было.
+ ко всему там еще куча столбцов ))

Спустя 14 минут, 30 секунд (16.02.2011 - 10:31) Snus написал(а):
AlexanderShad
Ты неправильно структуру БД делаешь. Почитай мануалы по этому поводу smile.gif

Спустя 1 минута, 7 секунд (16.02.2011 - 10:32) AlexanderShad написал(а):
Snus
smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.