J'ai recherché des questions similaires à propos de cette question: Énumérez le nombre d'employés pour chaque responsable et classez le nombre d'employés rapportant à chaque responsable décroissant.
Mais je n'ai pas encore trouvé de solution à la mienne.
Mon code est comme ci-dessous.
Toute aide ou suggestions seraient très appréciées.
(La question demandée d'utiliser le classement, mais je n'ai pas utilisé de rang () dans mon code) p>
3 Réponses :
On dirait que vous êtes sur la bonne voie - la seule chose qui vous manque, c'est classer les gestionnaires par le comte d'employés que vous avez déjà. Comme vous l'avez deviné, la fonction class code> peut faire exactement cela exactement, bien que vous préférez utiliser dense_rank code> si vous avez des liens et que vous voulez vous assurer que les rangs sont continus: < Pré> xxx pré> p>
Essayez ceci:
SELECT m.first_name,
m.last_name as name,
count(e.employee_id) as count
FROM RITDB_employee e
INNER JOIN RITDB_manager m ON e.manager = m.employee_id
GROUP BY m.name
ORDER BY count(e.employee_id) desc
Vous pouvez combiner les fonctions de fenêtre et le groupe par code>. La fonction de fenêtre sera évaluée premier_name code> et strong> last_name code> dans le groupe par code> Condition:
Merci beaucoup d'avoir aidé. Mais cela m'a donné "ORA-00907: erreur manquante de la parenthèse droite". J'essaie de voir si je peux résoudre ça. Merci quand même:)
Qu'est-ce qui est incorrect dans votre code? (Outre éventuellement ajouter DESC à votre commande par)
Certaines données d'échantillonnage des tables et du résultat souhaité seraient vraiment utiles.