webForumDet fria alternativet

Visa endast en post?

2 svar · 567 visningar · startad av casca

cascaMedlem sedan feb. 20003 262 inlägg
#1

Har en SQL-sats som räknar antalet anställda i varje avdelning som ser ut så här:

SELECT E.DEPTNO, D.DNAME, COUNT(*)
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
GROUP BY E.DEPTNO, D.DNAME
ORDER BY COUNT(*) DESC

Det ger följande utskrift:

DEPTNO	DNAME		COUNT(*)
------	-----		--------
30	SALES		6
20	RESEARCH	5
10	ACCOUNTING	3

Så långt funkar det, men jag är lite låst på hur man får ut endast en post, den med högsta COUNT()? :)

Kör med Oracle Database 10g Express Edition. Som jag förstått det så stöder inte Oracle TOP eller LIMIT...

@ndersMedlem sedan juni 200026 914 inlägg
#2

Se om detta funkar:

For Oracle 8i and above, one can get the Top N rows using an inner-query with an ORDER BY clause:

SELECT *
  FROM (SELECT * FROM my_table ORDER BY col_name_1 DESC)
 WHERE ROWNUM < 10;

Källa: http://www.orafaq.com/faq/how_does_one_select_the_top_n_rows_from_a_table

mvh

cascaMedlem sedan feb. 20003 262 inlägg
#3

Jag var inne på ROWNUM tidigare, men tänkte inte på att man måste nästla in resultatet... :)

Du är en pärla, @nders. :birp

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb