SQL PARTITION BY (Magyar)

Ö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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük