AngzavA
[SQLD] 2-2-3. SQL νμ© : μλμ° ν¨μ λ³Έλ¬Έ
πμλμ° ν¨μ
- νκ³Ό ν κ°μ κ΄κ³λ₯Ό μ μνκΈ° μν΄ μ 곡λλ ν¨μ
- μμ, ν©κ³, νκ· , ν μμΉ λ±μ μ‘°μ κ°λ₯
- GROUP BY ꡬ문과 λ³ννμ¬ μ¬μ©ν μ μλ€
- GROUP BY μ μ μ§ν©μ μλ³ΈμΌλ‘ νλ λ°μ΄ν°λ₯Ό WINDOW FUNCTIONκ³Ό ν¨κ» μ¬μ©νλ€λ©΄ μ€λ₯ X
- κ²°κ³Ό 건μκ° μ€μ΄λ€μ§λ μμ
- WINDOW/PARTITION/GROUP BY ꡬ문μ λ λ€ νν°μ μ λΆν νλ€λ μλ―Έμμλ μ μ¬
- SUM, MAX, MIN κ³Ό κ°μ μ§κ³ μλμ° ν¨μλ₯Ό μ¬μ©ν λ μλμ° μ κ³Ό ν¨κ» μ¬μ©νλ©΄ μ§κ³ λμμ΄ λλ λ μ½λ λ²μλ₯Ό μ§μ ν μ μλ€.
πμμ ν¨μ
- νΉμ νλͺ©κ³Ό νν°μ μ λν΄μ μμλ₯Ό κ³μ°ν μ μλ ν¨μ μ 곡
- RANK, DENSE_RANK, ROW_NUMBER
μμ ν¨μ | μ€λͺ |
RANK | - νΉμ νλͺ© λ° νν°μ
μ λν΄μ μμλ₯Ό κ³μ° - λμΌν μμλ λμΌ κ° - 1,2,3,3,5,5,5,8,9.... |
DENSE_RANK | λμΌν μμλ₯Ό νλμ 건μλ‘ κ³μ° - 1,2,2,3,3,4,5,5,5,.... |
ROW_NUMBER | λμΌν μμμ λν΄μ κ³ μ μμ λΆμ¬ - 1,2,3,4,5,6... |
πμ§κ³ ν¨μ
μ§κ³ ν¨μ | μ€λͺ |
SUM | νν°μ λ³ ν©κ³ κ³μ° |
AVG | νν°μ λ³ νκ· κ³μ° |
COUNT | νν°μ λ³ ν μ κ³μ° |
MAX μ MIN | νν°μ λ³ μ΅λκ°κ³Ό μ΅μκ°μ κ³μ° |
πν μμ κ΄λ ¨ ν¨μ
- ν μμ κ΄λ ¨ ν¨μλ μμ ν κ°μ νμμ μΆλ ₯νκ±°λ νμ ν κ°μ μμ νμ μΆλ ₯ν μ μλ€
- νΉμ μμΉμ νμ μΆλ ₯ν μ μλ€
- SQL SERVERμμλ μ§μνμ§ μλ ν¨μ
ν μμ | μ€λͺ |
FIRST_VALUE | νν°μ
μμ κ°μ₯ μ²μ λμ€λ κ° MIN ν¨μλ₯Ό μ¬μ©ν΄μ κ°μ κ²°κ³Όλ₯Ό ꡬν μ μλ€ |
LAST_VALUE | νν°μ μμ κ°μ₯ λμ€μ λμ€λ κ° |
LAG | μ΄μ νμ κ°μ§κ³ μ¨λ€ |
LEAD | μλμ°μμ νΉμ μμΉμ νμ κ°μ§κ³ μ¨λ€ κΈ°λ³Έκ°μ 1 |
SQLμ격 κ²μ λ Έλμ΄ 123p 118λ² λ¬Έμ νμ΄
SELECT ID, START_VAL, NVL(END_VAL, 99) AS END_VAL, LAG(END_VAL) OVER(PARTITION BY ID ORDER BY START_VAL, NVL(END_VAL, 99)) AS FLAG1, LEAD(START_VAL) OVER(PARTITION BY ID ORDER BY START_VAL, NVL(END_VAL, 99)) AS FLAG2 FROM TBL; NVL(END_VAL, 99) END_VAL 컬
u-it.tistory.com
'SQLD' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SQLD] 2-2-4. SQL νμ© : PL/SQL (0) | 2023.06.08 |
---|---|
[SQLD] 2-2-2. SQL νμ© : κ·Έλ£Ή ν¨μ (0) | 2023.06.08 |
[SQLD] 2-2. SQL νμ© (0) | 2023.06.08 |
[SQLD] 2-1. SQL κΈ°λ³Έ (1) | 2023.06.07 |
[SQLD] 1-2.λ°μ΄ν° λͺ¨λΈκ³Ό μ±λ₯ (0) | 2023.06.07 |