0
votes

Classer le nombre d'employés de High à basse pour chaque gestionnaire

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) xxx


2 commentaires

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.


3 Réponses :


0
votes

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 peut faire exactement cela exactement, bien que vous préférez utiliser dense_rank si vous avez des liens et que vous voulez vous assurer que les rangs sont continus: < Pré> xxx


0 commentaires

1
votes

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


0 commentaires

1
votes

Vous pouvez combiner les fonctions de fenêtre et le groupe par . La fonction de fenêtre sera évaluée après groupement. De plus, vous devez inclure premier_name et last_name dans le groupe par Condition: XXX


1 commentaires

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:)