-2
votes

Rejoignez la requête dans SQL

Voici ma requête SQL et mon résultat. Mon exigence est d'afficher le nom de ministère avec un nombre maximum de personnel, mais je ne sais pas comment faire cela. Je veux un résultat comme ministère_name - SE et Staff_ Comptez - 4 seulement.

    DEPARTMENT_NAME                COUNT(SF.STAFF_ID)                               
    ------------------------------ ------------------                               
    SE                             4                               
    EEE                            2                               
    IT                             2                               
    CSE                            2                               
    ECE                            1    


6 commentaires

Utilisez-vous MySQL ou SQL Server?


Ce n'est pas clair ce que vous demandez ... Veuillez fournir des exemples de données initiales et des résultats attendus.


Vous pouvez simplement ajouter 'limite 1' à la fin de la déclaration


Rejoignez-vous pour obtenir des entrées pour des entrées de personnel manquantes?


La limite et le haut ne fonctionnent pas dans le compilateur. S'il vous plaît obtenir une autre façon d'effacer les exigences de l'entreprise


"Ne pas fonctionner" n'est pas une phrase utile à utiliser pour décrire vos résultats. Si une erreur se produit, postez le message d'erreur complet. Si les résultats ne sont pas ce que vous attendez, postez ce que vous avez renvoyé, ce que vous attendez et des raisons pour lesquelles vous vous attendez à quelque chose de différent. Et il est temps d'évoluer - personne ne devrait utiliser des jointures de style ancien via la clause WHERE.


3 Réponses :


0
votes

Essayez cette requête

alias p> xxx pré>

Rejoignez la requête p> xxx pré>

ou supérieur p>

select TOP 1 d.department_name, count(staff_id)
from department d 
INNER JOIN staff sf ON d.department_id = sf.staff_id
group by department_name 
order by count(staff_id) desc 


5 commentaires

Il n'exclencra que l'exemple de test de test. Cela n'expliquera pas tous les cas de test. S'il vous plaît avoir une autre façon


@Prabhu: Si vous voulez un autre test, vous posez le nom de test dans la clause Where


@Prabhu: Exemple - Où D.Department_Name = 'Eee'


@Prabhu: Utilisation de la fonction supérieure


La limite et le haut ne fonctionnent pas dans le compilateur selon les exigences de l'entreprise



0
votes

Vous devez utiliser la limite 1 pour réduire le résultat, mais également utiliser la syntaxe de jointure explicite pour une meilleure lisibilité: xxx

ou sans utiliser la limite, vous pouvez essayer d'avoir sur le MAX: xxx


2 commentaires

Le dessus et la limite ne fonctionnent pas dans le compilateur selon les exigences de l'entreprise


pouvez-vous essayer cela d'une autre manière



0
votes

Vous devez d'abord obtenir le compte de chaque département, puis sélectionnez Département avec le nombre maximal. Par conséquent, vous pouvez utiliser la sous-requête comme suit:

SELECT d_name, MAX (staff_cnt) 
FROM (SELECT d.department_name as d_name, count(staff_id) as staff_cnt 
      FROM department d, staff sf 
      WHERE d.department_id = sf.staff_id
      GROUP BY department_name);


1 commentaires

L'erreur s'est produite comme non une seule fonction de groupe