![]() |
|
Модераторы: skyboy |
![]()
|
|
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
наступил Кризис в мышлении - Помогите!
Проблема такая - итоги голосования пишутся в таблицу с полями project, remote_addr, mark (оценка) некоторые особо Талантливые участники (или их болельщики) голосуют за своих и против чужих по нескольку десятков раз. решать это на уровне фильтрации адресов и куков уже поздно, а фильтровать вручную пока рано
это Скучно - хочется Грамотного запроса! чтобы в результате иметь за какой проект сколько отдано уникальных голосов со средней оценкой и сколько накрученных (со средней оценкой) |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: нет Всего: 51 |
Может так?
|
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
||||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
отложим пока в сторону тот вопрс, что с одного remote_addr могут выходить в сеть несколько человек. как и то, что за физически одним компьютером могут работать несколько человек.
Leshak, надо объяснить, какую логику ты хочешь получить: 1. не учитывать голоса, если повторений значения в remote_addr более одного("игнорировать накрутчиков") 2. голос за каждый project от каждого remote_addr считать только один раз("игнорировать повторы") 3. от каждого remote_addr за каждый project учитывается только минимальная оценка(ну, это скорее для демонстрации того, что логика учета повторов может быть разной). что тебе ближе? |
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
хотел в результате иметь за какой проект сколько отдано уникальных голосов со средней оценкой и сколько накрученных (со средней оценкой), но уже понял - подход неверен. лучше было бы иметь количество уникальных голосов с их суммой, и количество накрученных, с их суммой... и уже потом - разницу и результат, но такое одним запросом видимо не делается... из предложенных вариантов логики, более верным кажется
но с поправкой - 1 голос от 1 remote_addr за 1 сутки простите великодушно, есть в таблице еще поля data_time - формат 2008-12-23 15:58:10 cookie - bigint(20) ( Талантливые накрутчики сбрасывают cookie за 2 минуты ) Согласен с тем, что у разных пользователей одной "домашней" сетки один адрес, но как быть? очень не хочется фильтровать вручную... жалко время и глаза |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: нет Всего: 51 |
Да, точно. |
|||
|
||||
| Deniz |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
| Leshak |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
вот Оно!! Спасибо!
вообще-то я добрый и готов принять max, но сильно торможу, как отдельно считать сумму для уникальных и грязных голосов в одном запросе??? |
||||
|
|||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Не силен в MySQL, поэтому ... select from select может помочь
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Увы - моя версия MySQL не поддерживает вложенные select пришлось решать задачу через... ну вобщем Access - перегнать туда данные таблицы и последовательными запросами фильтровать накрутку и подсчитывать результат... другое решение - с помощью PHP буду делать к следующему разу |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |