webForumDet fria alternativet

Visa endast en post?

Databaser & SQLur Databashanterare & SQL

2 svar · 567 visningar · startad av casca

Medlem sedan feb. 20005 891 inlägg
Frågan#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...

Medlem sedan juni 200032 969 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

Medlem sedan feb. 20005 891 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

141 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)