Összefoglaló: ebben az oktatóanyagban megtanulhatja az SQL használatát PARTITION BY
záradék annak megváltoztatásához, hogy az ablak függvény hogyan számolja ki az eredményt.
SQL PARTITION BY záradék áttekintése
A PARTITION BY
záradék a a OVER
záradék. A PARTITION BY
záradék partíciókra osztja a lekérdezés eredményhalmazát. Az ablakfunkció minden partíción külön működik, és újraszámolja az egyes partíciókat.
Az alábbiakban bemutatjuk a PARTITION BY
záradék szintaxisát:
Megadhat egy vagy több oszlopot vagy kifejezést az eredményhalmaz particionálására. Az expression1
, expression1
stb. Csak a FROM
záradék. Nem hivatkozhatnak kifejezésekre vagy álnevekre a kiválasztott listában.
A PARTITION BY
záradék kifejezései lehetnek oszlopkifejezések, skaláralekérdezés vagy skalárfüggvény. Ne feledje, hogy a skalár-lekérdezés és a skalárfüggvény mindig egyetlen értéket ad vissza.
Ha kihagyja a PARTITION BY
záradékot, a teljes eredményhalmaz egyetlen partícióként kezelendő.
PARTITION BY vs. GROUP BY
A GROUP BY
záradékot gyakran használják olyan összesítő függvényekkel együtt, mint például SUM()
és AVG()
. A GROUP BY
záradék csökkenti a visszaküldött sorok számát az összesítés és az egyes csoportok összegének vagy átlagának kiszámításával.
Például a következő utasítás visszaadja az átlagot az alkalmazottak fizetése részlegenként:
A következő képen látható az eredmény:
A PARTITION BY
záradék felosztja az eredményhalmazt partíciókra, és megváltoztatja az ablakfunkció kiszámításának módját. A PARTITION BY
záradék nem csökkenti a visszaküldött sorok számát.
Az alábbi állítás visszaadja a munkavállaló fizetését, valamint az alkalmazott osztályának átlagbérét:
Itt van a részleges kimenet:
Egyszerű szavakkal a GROUP BY
záradék összesített, míg a PARTITION BY
záradék analitikus.
Ebben oktatóanyag, megtanulta az SQL PARTITION BY
záradékot, amely megváltoztatja az ablakfunkció eredményének kiszámítását.
- Hasznos volt ez az oktatóanyag?
- IgenNem