Вроде count + group, но что-то не получается

Avenus

Under Glory Yield
Вроде count + group, но что-то не получается

Привет, всем!
Подскажите, пожалуйста, в чем проблема:

В таблице голосования 65 строк для rate_id=10.
Из них:
47 строк с user_id=1
1 строк с user_id=2
16 строк с user_id=3
1 строк с user_id=4

Необходимо подсчитать, количество разных пользователей user_id для заданного rate_id
PHP:
select count(*) from rate where rate_id=10 group by user_id
Выдает:
count( * )
47
1
16
1

Если изменю запрос:
PHP:
select count(distinct(user_id)) from rate where rate_id=10 group by user_id
Выдает:
count( distinct ( user_id ) )
1
1
1
1

Что нужно подправить в запросе, не пойму? :(

-~{}~ 20.07.09 23:11:

Т.е. как получить на выходе число 4 в данном случае.
 

Avenus

Under Glory Yield
Bitterman, а так работает :)
Почему в таком запросе не нужен GROUP BY?
Потому что DISTINCT исключает уже?
 

Bitterman

Новичок
Ну, наверно, лучше прочесть в мануале об этом, так как объяснять я не умею.
Если попытаться на пальцах, то COUNT(DISTINCT user_id) считает количество различных user_id в наборе. Соответственно, когда поставлено GROUP BY user_id, то каждый набор - это набор строк с одинаковым user_id, соответственно количество разных user_id в каждом наборе = 1. Когда GROUP BY нет, то COUNT применяется ко всему набору строк сразу, а там число различных user_id = 4. Как-то так...
 
Сверху