Plus haut Salaire dans chaque département
J'ai une table EmpDetails
:
DeptID EmpName Salary
Engg Sam 1000
Engg Smith 2000
HR Denis 1500
HR Danny 3000
IT David 2000
IT John 3000
J'ai besoin de faire une requête pour trouver le salaire le plus élevé pour chaque département.
Qu'avez-vous essayé? Si vous voulez faire de code-par-requête, alors vous devez embaucher un consultant. Débordement de pile est pour de l'aide avec des questions spécifiques.
OriginalL'auteur Qinnovator | 2011-12-12
Vous devez vous connecter pour publier un commentaire.
Aussi courte que la question:
Est-il possible d'afficher seulement le département avec le maximum de salaire , sans l'aide d'une sous-requête?
Je ne suis pas entièrement sûr de ce que tu veux dire, mais si vous voulez juste un seul résultat, ajouter
TOP 1
pour le SÉLECTIONNER etORDER BY MAX(Salary)
.même question pour trouver 2ème plus haut Salaire Ministère sage ? quelqu'un peut-il aider?
OriginalL'auteur AVee
En supposant que SQL Server 2005+
Je ne suis jamais intentionnellement veux dire. 🙂 Depuis que vous avez fait, je vais préciser que DENSE_RANK() est utilisé ici pour permettre la possibilité que plus d'un employé, le salaire maximum à l'intérieur de chaque département.
La meilleure réponse que j'ai vu dans le fil.
OriginalL'auteur Joe Stefanelli
OriginalL'auteur Dinesh
Oui ce sera certainement le désordre. Ce n'est pas la bonne réponse
OriginalL'auteur Prem Ranjan Jha
Si vous voulez montrer aux autres paramètres de trop avec
DeptId
etSalary
commeEmpName
,EmpId
OriginalL'auteur Ankit Sharma
Utiliser le dessous quesry:
OriginalL'auteur Saiprasad
ermn, quelque chose comme:
OriginalL'auteur jens_profile
Je ne pense pas que cela fonctionne parce que votre requête interne va ramener plus d'une colonne et EN requiert l'un de la valeur.
OriginalL'auteur Waseem M Soudagar
OriginalL'auteur sushil dwivedi
OriginalL'auteur Shabad Sharan Goyal
OriginalL'auteur Vikas
Ceci fonctionnera si le ministère, le salaire et le nom de l'employé sont dans le même tableau.
Est-il une meilleure solution?
OriginalL'auteur vijayinani
Utiliser la commande suivante;
OriginalL'auteur user5276129
OriginalL'auteur naveen
OriginalL'auteur Satish Wadekar
OriginalL'auteur PankajN
C'est la meilleure solution possible pour ORACLE:
Avis ici, j'ai utilisé partition par la clause pour le marquage du numéro de ligne, c'est majorly, car nous avons besoin de partitionner les dossiers, en les regroupant en fonction de l'id du client. J'ai utilisé deux intérieure requêtes ici. L'intérieur de la plupart des requêtes est de donner un point de vue qui est triée en fonction de l'ID du client et l'ordre décroissant de leur coût. Maintenant, depuis que nous avons besoin d'obtenir toujours deux premiers enregistrements, afin de tout d'abord nous avons besoin de les nommer et puis nous avons besoin de les filtrer selon rownum. Deuxième requête de niveau est de marquer rownum en fonction de l'ID du client. Et dernière question permettra de filtrer le résultat selon rownum. Pour chaque partition.
OriginalL'auteur Vrajendra Singh Mandloi
Ici est une façon d'obtenir le maximum de valeurs et les noms sur n'importe quelle version de SQL.
Données De Test:
Exemple:
Pas le plus élégant, mais il fonctionne.
OriginalL'auteur Mack
Cette requête fonctionne correctement, mais le moment si vous voulez aller en chercher d'autres détails relatifs à la personne salariée ayant le salaire le plus élevé ne contredira.
Vous pouvez utiliser :
si vous utilisez la requête précédente il reflète uniquement les enregistrements de la min val sauf le salaire que vous avez utilisé la fonction max.
OriginalL'auteur Mrityunjay Kumar Singh
J'espère que ça marchera...
ici, j'ai écrit une sous-requête corrélée à trouver le salaire le plus élevé dans chaque département.
Pour chaque employé dans la table EMP, il va comparer son salaire avec le salaire maximal du ministère ayant la même DeptNo. Si c'est le cas, cela signifie que l'employé reçoit le salaire le plus élevé dans son département. C'est tout..
Je voulais ajouter que le contexte dans votre réponse.
Sous-requêtes corrélées sont très inefficace, il va exécuter la sous-requête pour chaque enregistrement de l'extérieur de la phrase.
OriginalL'auteur aromita sen
Utiliser une sous-requête corrélée:
OriginalL'auteur Adarsh Kumar
Ci-dessous la requête d'affichage de nom de l'employé avec leurs nom du département dans lequel ce nom de l'employé est d'avoir le plus haut salaire.
J'ai exécuté la requête ci-dessus avec succès sur la base de données Oracle.
OriginalL'auteur Puneet Agrawal
Si vous voulez juste pour obtenir le salaire le plus élevé à partir de cette table, par département:
OriginalL'auteur swiftcode
Les premiers rangs à chaque employé un salaire dans l'ordre décroissant d'avoir la plus élevée
rang 1, puis sélectionne uniquement deptid, empname, le salaire. Vous pouvez faire cela pour
tous Nième membre du groupe.
OriginalL'auteur Dwipam Katariya
OriginalL'auteur Ashraf Nawaz
SI vous voulez Département et le plus haut salaire, l'utilisation
si vous voulez plus de colonnes de l'employé et le département, l'utilisation
si l'utilisation salaire (select max(salaire...)) comme ça, une personne ont le même salaire dans un autre département, il échouera.
OriginalL'auteur Arun Raj
La liste figure ci-dessous requête de la liste plus haut salaire dans chaque département.
J'ai exécuté cette requête, avec succès, sur la base de données Oracle.
OriginalL'auteur Puneet Agrawal
Ne sais pas pourquoi personne n'a mentionné le Groupe .... Avoir de la syntaxe.
Il traite spécifiquement de ces exigences.
OriginalL'auteur Avinash Ganta