2014-02-09 4 views
0

дается таблица, которая представляет объекты, которые принадлежат пользователям и имеет 2 colomns: oid и uidэффективность группировки результатов запроса группировки в MySQL

Я хочу знать, сколько пользователей имеют как много объектов .. . т.е. 10 пользователей имеют 3 объектов 20 пользователей есть 2 объекта 40 пользователи имеют один объект

думаю, я мог рассчитывать первый объекты для каждого пользователя:

select uid,count(oid) c from t group by uid 

и затем реверс группировки:

select c,count(uid) from 
    (select uid,count(oid) c from t group by uid) g 
group by c 

Есть ли способ, чтобы сделать этот тип запроса в более эффективном способе?

+0

В первом запросе вы получаете объекты на пользователя, почему вы хотите изменить группировку.? какова ваша цель. –

+0

Как я писал «Я хочу знать, сколько пользователей имеет сколько объектов ... т. Е. 10 пользователей имеют 3 объекта 20 пользователей имеют 2 объекта 40 пользователей имеют 1 объект" – epeleg

ответ

0

Я не думаю, что есть способ сделать это в стандартном SQL. Если у вас есть процедурный язык в вашем распоряжении, вы можете написать функцию, чтобы сделать это, но я думаю, что ваш подход к подзапросам достаточно прост и эффективен.

Смежные вопросы