J'ai deux EMP et salaire de table. 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
4 Réponses :
J'utiliserais row_number code> ici:
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)
@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
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 code> n'est pas valide pour Postgres (ou dans SQL Standard)
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);
Query la plus simple: sortie: p>
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"