SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.02.2011 22:06:31

Дашенька
Участник
Зарегистрирован: 28.02.2011
Сообщений: 3

Помогите составить запрос

Есть таблица Клубы (в которой содержится информация о людях занимающихся в клубах), в ней соответственно столбцы: Номер_человека, ИД_клуба, Дата_начала, Дата_конца. Человек может быть в одном клубе, потом перейти в другой и тд, даты переходов фиксируются.
Надо составить запрос, который бы вывел номер того человека, который находился в максимальном количестве клубов

Заранее спасибо!

Неактивен

 

#2 28.02.2011 22:18:29

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите составить запрос

select `Номер_человека`, count(`Номер_человека`) from
(select `Номер_человека`, `ИД_клуба` from `таблица` group by 1,2) t
group by 1 order by 2 desc desc limit 1;

Неактивен

 

#3 28.02.2011 22:38:12

Дашенька
Участник
Зарегистрирован: 28.02.2011
Сообщений: 3

Re: Помогите составить запрос

Честно говоря не совсем понятно, почему дважды написано desc? и t в конце второй строки?

Неактивен

 

#4 28.02.2011 22:41:34

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите составить запрос

Один desc естественно лишний, а t это алиас внутренней выборки.

Неактивен

 

#5 28.02.2011 22:43:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите составить запрос

Опечатка? smile

Можно еще
SELECT person, COUNT(DISTINCT club_id) FROM tablename GROUP BY 1 ORDER BY 2 DESC LIMIT 1;

Неактивен

 

#6 01.03.2011 00:41:55

Дашенька
Участник
Зарегистрирован: 28.02.2011
Сообщений: 3

Re: Помогите составить запрос

Спасибо, все получилось! только вместо LIMIT пришлось использовать ROWNUM, так как работаю в oracle

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson