Comment puis-je sélectionner le salaire le plus élevé de chaque département avec un même salaire.
Ma requête n'est que pour obtenir la première rangée de chaque département avec le même salaire. Mais je veux sélectionner tout le même salaire maximum sur chaque département. S'il vous plaît aidez-moi à sortir de ce problème. P>
ci-dessous est la table d'échantillonnage: p> Voici le code que j'essaie: p> SELECT MAX(inter_department_votes.number_votes)
FROM employee_salary
GROUP BY dept_id
3 Réponses :
Essayez également de sélectionner DEPT_ID:
SELECT dept_id, MAX(inter_department_votes.number_votes) FROM employee_salary GROUP BY dept_id
Utilisation de Rank fournit la même valeur numérique pour les cravates (par exemple 1, 1, 2, 4, 5). P> Rank () Code> Fonction:
SELECT *
FROM (
SELECT dept_id,
PersonName,
Salary,
RANK() OVER(PARTITION dept_id ORDER BY Salary DESC) AS SortBySalary
FROM employee_salary
)
WHERE SortBySalary = 1
Prashant Pimpale: Les modifications devraient être importantes.
Votre table n'est pas claire pour moi. Je ne comprends pas pourquoi vous créez des tables séparées pour tous les départements.
En supposant que vous fabriquiez deux tables différentes, une pour les employés et une pour le département. Cela rendra des requêtes plus simples pour une base de données future et efficace. Dans ce cas: p>
Dupliqué possible de Fonction max utilisée avec le groupe par clause
Quel SGBD utilisez-vous? (La réponse peut dépendre de la DBMS utilisé.)
@jarlh SQL Server, merci beaucoup!