๋ฐ์ํ
sqld 33ํ ๊ธฐ์ถ 23๋ฒ ๋ฌธ์
๋ค์ ์ฃผ์ด์ง ํ ์ด๋ธ์์ ์๋์ SQL์ ์ํํ์์ ๋์ ๊ฒฐ๊ณผ๊ฐ ์๋์ ๊ฐ์ ๋ ๊ฒฐ๊ณผ์์ ๋น์นธ์ ๋ค์ด๊ฐ MGR_SUM ๊ฐ์ผ๋ก ์๋ง์ ๊ฒ์ ๊ณ ๋ฅด์์ค.
์ ๋ตํ์ธ๐ผ
[SQLD_33_23]
MGR ENAME HIREDATE SAL
-----------------------------
์ ๋น ๊ด์ฐ 2017 1000
์ ๋น ์ฅ๋น 2018 1500
์ ๋น ์ ๊ฐ๋ 2015 2000
์กฐ์กฐ ํํ๋ 2016 2000
์กฐ์กฐ ํํ์ฐ 2017 3500
์กฐ์กฐ ์์ฑ 2015 3000
์๊ถ ์ฃผ์ 2015 2500
์๊ถ ํฉ๊ฐ 2019 3000
์๊ถ ๋
ธ์ 2013 2000
[SQL]
SELECT MGR, ENAME, HIREDATE, SAL,
SUM(SAL) OVER(PARTITION BY MGR
ORDER BY HIREDATE
ROWS BETWEEN 1 PRECEDING
AND 1 FOLLOWING) AS MGR_SUM
FROM SQLD_33_23;
[RESULT]
MGR ENAME HIREDATE SAL MGR_SUM
---------------------------------------
์๊ถ ๋
ธ์ 2013 2000 ( )
์๊ถ ์ฃผ์ 2015 2500 ( )
์๊ถ ํฉ๊ฐ 2019 3000 ( )
์ ๋น ์ ๊ฐ๋ 2015 2000 ( )
์ ๋น ๊ด์ฐ 2017 1000 ( )
์ ๋น ์ฅ๋น 2018 1500 ( )
์กฐ์กฐ ์์ฑ 2015 3000 ( )
์กฐ์กฐ ํํ๋ 2016 2000 ( )
์กฐ์กฐ ํํ์ฐ 2017 3500 ( )
1) 2000, 2500, 3000, 2000, 1000, 1500, 3000, 2000, 3500 2) 4500, 7500, 5500, 3000, 4500, 2500, 5000, 8500, 5500 3) 2000, 4500, 7500, 2000, 3000, 4500, 3000, 5000, 8500 4) 4500, 7500, 7500, 3000, 4500, 4500, 5000, 8500, 8500 |
์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : 1 PRECEDING / 1 FOLLOWING - ํ์ฌํ์ ๊ธฐ์ค์ผ๋ก ์ด์ ํ+ํ์ฌ+๋ค์ํ ํฉ๊ณ๋ฅผ ํ์
- ROWS : ๋ฌผ๋ฆฌ์ ์ธ ROW ๋จ์๋ก ํ ์งํฉ์ ์ง์ ํ๋ค.(ํ์ฌ ํ์ ์ ๋ค ๊ฑด์)
- RANGE : ํ์ฌ ํ์ ๋ฐ์ดํฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ค ๋ฐ์ดํฐ ๊ฐ์ ๋ฒ์๋ฅผ ํ์ํ๋ค.
- BETWEEN ~ AND ์ : ์๋์ฐ์ ์์๊ณผ ๋ ์์น๋ฅผ ์ง์ ํ๋ค.
- UNBOUNDED PRECEDING : PARTITION์ ์ฒซ ๋ฒ์งธ ๋ก์ฐ์์ ์๋์ฐ๊ฐ ์์ํ๋ค.
- UNBOUNDED FOLLOWING : PARTITION์ ๋ง์ง๋ง ๋ก์ฐ์์ ์๋์ฐ๊ฐ ์์ํ๋ค.
- CURRENT ROW : ์๋์ฐ์ ์์์ด๋ ๋ ์์น๊ฐ ํ์ฌ ๋ก์ฐ ์ด๋ค.
๐ฉ๐ปโ๐ป์๋์ฐ ํจ์(WINDOW FUNCTION) ๋? [ ํผ์ณ๋ณด๊ธฐ ]
300x250
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ๊ธฐ์ถ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 37ํ ๊ธฐ์ถ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต, ํด์คํฌํจ ) (48) | 2022.09.05 |
---|---|
[SQLD] 33ํ ๊ธฐ์ถ๋ฌธ์ ( 50๋ฌธ์ /์ ๋ต ) (46) | 2022.07.15 |
[SQLD] 38ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต ) + ํด์ค์ถ๊ฐ (25) | 2022.05.25 |
[SQLD] 39ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (64) | 2022.05.19 |
[SQLD] 35ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (27) | 2022.05.13 |