Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчёт количества голосов для большого числа участников одним-двумя запросами / 6 сообщений из 6, страница 1 из 1
27.09.2013, 07:35:21
    #38409202
Sanya Volkinov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
Доброго времени суток.

Прошу прощения за недостаток знаний SQL, но нет идей как это можно реализовать даже абстрактно.

Есть таблица, содержащая user_id и action_id, где user_id - идентификатор участника, а action_id - идентификатор акции.

Количество голосов за одного участника подсчитывается как COUNT всех строк, в которых присутствует необходимый user_id и action_id.

Проблема в том, что необходимо подсчитывать количество голосов за большое количество участников, сотню и более. Можно ли это сделать максимально быстро и, желательно, одним-двумя запросами?
...
Рейтинг: 0 / 0
27.09.2013, 07:39:11
    #38409205
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
Sanya Volkinov, rtfm "where","group by","count"...
...
Рейтинг: 0 / 0
27.09.2013, 08:00:08
    #38409212
Sanya Volkinov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
Спасибо, что-то я туплю уже. Пора себе выходной устроить.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT user_id, COUNT(*)
FROM vote
WHERE (
user_id = 1
OR user_id = 2
OR user_id = 3
)
AND action_id = 2
GROUP BY user_id
...
Рейтинг: 0 / 0
27.09.2013, 09:39:47
    #38409265
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
Код: sql
1.
2.
3.
4.
5.
WHERE (
user_id = 1
OR user_id = 2
OR user_id = 3
)

лучше заменить на
Код: sql
1.
2.
3.
WHERE (
user_id IN (1, 2, 3)
)


Ну и сотня - это не большое и даже не среднее количество...
...
Рейтинг: 0 / 0
27.09.2013, 09:58:09
    #38409301
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
может быть, не совсем это надо? А вот так?
Код: sql
1.
2.
3.
4.
5.
6.
SELECT user_id, COUNT(*) voices
FROM vote
WHERE action_id = 2
GROUP BY user_id
ORDER BY count(*) desc
LIMIT 3;
...
Рейтинг: 0 / 0
27.09.2013, 11:01:34
    #38409421
Sanya Volkinov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчёт количества голосов для большого числа участников одним-двумя запросами
Cygapb-007, Akina спасибо.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчёт количества голосов для большого числа участников одним-двумя запросами / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]