PARTITION BY klausul indstiller rækken af poster, der vil blive brugt for hver "GROUP" i OVER klausul.
I dit eksempel SQL, DEPT_COUNT returnerer antallet af medarbejdere i den pågældende afdeling for hver medarbejderpost. (Det er som om du de-nomaliserer emp bord; du returnerer stadig hver post i emp tabel.)
emp_no dept_no DEPT_COUNT
1 10 3
2 10 3
3 10 3 <- three because there are three "dept_no = 10" records
4 20 2
5 20 2 <- two because there are two "dept_no = 20" records
Hvis der var en anden kolonne (f.eks. state ) så kunne du tælle hvor mange afdelinger i den stat.
Det er som at få resultaterne af en GROUP BY (SUM , AVG osv.) uden at aggregere resultatsættet (dvs. fjerne matchende poster).
Det er nyttigt, når du bruger LAST OVER eller MIN OVER funktioner til at få f.eks. den laveste og højeste løn i afdelingen og så bruge det i en udregning mod denne poster løn uden et undervalg, som er meget hurtigere.
Læs den linkede AskTom-artikel for yderligere detaljer.