emp_name |salary
---------------
A |12568
B |3000
C |7852
D |2568
E |9852
F |1598
G |8569
Ich möchte eine SQL-Abfrage holen die niedrigsten 3 AngestellteSQL-Abfrage Top 3 Gehälter
emp_name |salary
---------------
A |12568
B |3000
C |7852
D |2568
E |9852
F |1598
G |8569
Ich möchte eine SQL-Abfrage holen die niedrigsten 3 AngestellteSQL-Abfrage Top 3 Gehälter
Sie holen können Top-3 verwenden drei Datensatz zu erhalten, nachdem sie in absteigender oder aufsteigender Reihenfolge der Bestellung. Ich habe SQL-Server-Syntax, aber Sie können eine Idee von diesem Ziel für DBMS haben.
Für Top drei max Gehälter
Select top 3 emp_name, salary
order by salary desc
Für Top drei Mindestlöhne
Select top 3 emp_name, salary
order by salary asc
ORACLE:
SELECT emp_name
FROM ( SELECT *
FROM employees e
ORDER BY e.salary ASC)
WHERE ROWNUM < 4
Viel Glück!
USE ASC
UND LIMIT
Select emp_name, salary FROM TABLE_NAME
order by salary ASC LIMIT 3;
Sie nicht Ihre DBMS angeben, so ist dies ANSI SQL:
select emp_name, salary
from (
select emp_name, salary,
dense_rank() over (order by salary) as rnk
from employees
) t
where rnk <= 3;
Dies wird auch mit den Mitarbeitern beschäftigen, die das gleiche Gehalt haben. Das Ergebnis kann also mehr als drei Zeilen sein, wenn mehr als einer der Mitarbeiter mit dem niedrigsten Gehalt das gleiche Gehalt hat.
Interessant .. alle Super-Reputation-Benutzer und professionelle Programmierer im Datenbankbereich haben ähnliche Avatare :-) http://stackoverflow.com/users/1144035/gordon-linoff –
Wenn Sie Oracle 12c oder höher verwenden, können Sie Ihre Abfrage mit fetch
einfacher gestalten. Anstatt solche inneren Anfragen zu schreiben.
SELECT *
FROM
(SELECT * FROM EMPLOYEES EMP ORDER BY EMP.SALARY ASC
)
WHERE ROWNNUM <= 3
Sie können sie in einer einzigen Abfrage kombinieren.
SELECT * FROM employees emp ORDER BY emp.salary ASC
FETCH FIRST 3 ROWS ONLY;
Weitere Informationen zu Syntax und Konstrukt finden Sie hier. http://www.dba-oracle.com/t_offset_fet_first_rows_only.htm
Was ist Ihr SQL-Server? Einige verwendet oben, einige verwendet Grenze. –
Was ist, wenn es zwei Angestellte mit demselben dritten Gehalt gibt? – jarlh