Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить запрос для расчёта ТОП 10 
:(
    Опции темы
FlightOfDeath
  Дата 18.3.2012, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 1.2.2008
Где: г. Магнитогорск

Репутация: нет
Всего: нет



Приветствую всех.
Имеется 1 таблица, где хранятся голоса пользователей, которые проголосовали. В таблице есть поле "vote", где может быть два значения "p" или "m", то есть плюс или минус.

Вот сама таблица:

|  id  |  loop_id  |  user_id  |  ip  |  vote  |
--------------------------------------------------
|   1  |      1       |       1       |  *   |    p     |
|   2  |      1       |       2       |  *   |    m    |
|   3  |      1       |       5       |  *   |    p     |
|   4  |      3       |       1       |  *   |    p     |
|   5  |      6       |       1       |  *   |    m    |
|   *  |      *       |       *       |  *   |    *     |

В общем нужно вывести десять полей "loop_id", у которых в сумме со значением полей vote больше, то есть если, допустим, 10 плюсов и 2 минуса в поле "vote" у одного "loop_id", а у другого 5 плюсов и 1 минус, то на первом месте должен быть первый, так как в сумме у него получается 8, а у второго 4.
Возможно ли сделать это всё одним запросом или всё же из-за неправильного составления таблицы придётся вычислять уже другими средствами и делать несколько запросов?
PM MAIL WWW ICQ   Вверх
Akina
Дата 18.3.2012, 11:42 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

select loop_id, sum(vote='p')-sum(vote='m') rating
from `table`
group by loop_id
order by 2 desc
limit 10


Цитата(FlightOfDeath @  18.3.2012,  12:26 Найти цитируемый пост)
два значения "p" или "m", то есть плюс или минус

Какой кретин это придумал? Что мешало заносить туда совершенно очевидные 1 и -1?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FlightOfDeath
Дата 18.3.2012, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 1.2.2008
Где: г. Магнитогорск

Репутация: нет
Всего: нет



Akina, Спасибо большое! smile
Признаюсь, этот кретин я. Просто была спешка и как то не подумал даже про простые числа...
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.