2010-12-01 20 views
0

J'ai besoin d'obtenir le top 10 des utilisateurs par CC, en fonction des impressions totales qu'ils ont faites.MYSQL Requête pour les 10 meilleurs utilisateurs par emplacement

Hiérarchie ressemble à ceci

  1. Business Unit
  2. Centre de coûts
  3. utilisateur

Il est un à plusieurs relation.

tableaux ressemblent à ceci:

Business Unit 
'id', name, bu_no 

Cost Center 
'id', bu_id, name 

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

Ceci est actuellement dans Excel, mais je vais obtenir les données en MySQL.

J'ai besoin de trouver la requête MySQL pour afficher les 10 meilleurs utilisateurs (la plupart des impressions) par centre de coûts.

Toute aide serait appréciée. Merci

+0

Vous devriez pouvoir trouver de bonnes réponses ici sur StackOverflow en recherchant les balises '[mysql]' et '[plus-n-par-groupe]'. –

+1

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

+1

Comment votre utilisateur est-il connecté aux autres tables? Qu'est-ce qui vous dit qu'ils ont x impressions et CC 1 et y imprime à CC 2? Il me semble que votre table d'utilisateur est une île. – Matthew

Répondre

0

Le tri par ordre décroissant mettrait le plus grand nombre de tirages en haut et LIMIT 10 ne sélectionnerait que les dix premiers enregistrements.

Voici un exemple de code pour montrer de quoi je parle.

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