2010-12-01 1 views
0

Мне нужно получить 10 лучших пользователей на каждый CC, исходя из итоговых отпечатков, которые они сделали.MYSQL Query для 10 лучших пользователей в каждом месте

Иерархия выглядит следующим образом

  1. Business Unit
  2. МВЗ
  3. пользователя

Это один ко многим отношений.

Таблицы выглядеть следующим образом:

Business Unit 
'id', name, bu_no 

Cost Center 
'id', bu_id, name 

User 
'id', username, fullname, email, total_prints 

Это в настоящее время в Excel, но я буду получать данные в MySQL.

Мне нужно найти запрос MySQL, чтобы показать 10 лучших пользователей (большинство отпечатков) за Центр затрат.

Любая помощь будет оценена по достоинству. Спасибо

+0

Вы должны найти хорошие ответы здесь, в StackOverflow, ищем теги '[mysql]' и '[наибольшая-n-группа]'. –

+1

http://frishit.com/2010/07/mysql-selecting-top-n-per-group/ –

+1

Как ваш пользователь подключается к другим таблицам? Что говорит вам, что у них есть x-отпечатки, а CC 1 и y печатает в CC 2? Мне кажется, что ваш пользовательский стол - это остров. – Matthew

ответ

0

Сортировка по убыванию поместит наибольшее количество отпечатков вверху, а LIMIT 10 выберет только десятку записей.

Вот пример кода, чтобы показать, о чем я говорю.

SELECT * FROM User WHERE User.Id = Cost_Center.Id ORDER By total_prints DESC LIMIT 10;