0
votes

Requête pour récupérer le nom et la plus haute s de l'employé en particulier mois

J'ai deux EMP et salaire de table. XXX PRE>

Je veux obtenir le nom de l'employé qui a obtenu un salaire de Maximun dans "Jan" mois. P>

J'ai Fatigué la requête Follwing à Postgres: P>

Excepted output:
name  |  sal  
-------+-------
charu | 16000


2 commentaires

Pourquoi un seul disque n'est-il qu'un enregistrement ici? Quelle est la logique? Plus d'un employé a reçu leur salaire maximum en janvier.


Je veux juste énumérer le nom de l'employé qui obtient un maximum de sal dans "janvier"


4 Réponses :


2
votes

J'utiliserais row_number ici: xxx


1 commentaires

Exécution de la commande ci-dessus, je reçois la sortie comme suit: Nom | Sal -------- + ------- Ashika | 15000 banu | 14000 Charu | 16000 DHJI | 12000 (4 rangées)



1
votes

@ishika, je pense que vous posez la requête qui n'utilise pas 'avec' Handwork.

Voici la réponse mise à jour: - 1. Avec Utilisation de CTE P>

SELECT TOP 1 name, salary 
FROM (SELECT e.name, s.salary
      FROM emp e
      INNER JOIN salary s
      ON e.id = s.emp_id    
      WHERE s.month = 'jan') my_selected_data
ORDER BY salary DESC


4 commentaires

Puis-je obtenir la requête avec l'utilisation du mot-clé "avec"


@ishika, je n'ai pas eu votre requête.


Il est presque des réponses .... Est-il possible d'obtenir la requête sans utiliser ("haut" et "descendre") ou au moins ("haut") ...... désolé, il y a beaucoup de contraintes données à moi par écrit le Requête .... Merci d'avance


Top n'est pas valide pour Postgres (ou dans SQL Standard)



0
votes
WITH result AS 
(SELECT e.name, s.sal  FROM empp e 
INNER JOIN 
salary s ON e.id = s.id WHERE s.month = 'jan')
SELECT name,sal FROM result 
where sal = (select max(sal) from (select name,max(sal) as sal 
from Empp join Salary using(id)where month='jan' 
group by name) as foo);

0 commentaires

0
votes

Query la plus simple: xxx

sortie: xxx


0 commentaires