๐ ์ค๋์ ํ์ต
ํ๋ธ๋ก ํจ์, ํ ์ด๋ธ ๊ณ์ฐ ๋ชจ์
์ฐจ์ ์ง๊ณ
· MIN
· MAX
· COUNT
· COUNTD
· ATTR - ํน์ฑ
์ธก์ ๊ฐ ์ง๊ณ
· SUM
· AVG
· VAR
· VARP
๋ฑ๋ฑ
Primary ํจ์
· TOTAL
· PREVIOUS_VALUE
· LOOKUP
· RUNNING
· WINDOW
Partition
· INDEX
· FIRST - window ํจ์ ์ฌ์ฉ ๊ฐ๋ฅ
· LAST
RANK ํจ์
· RANK : ๊ณต๋ 1์๊ฐ 3๋ช
→ 1์ / 1์ / 1์ / 4์
· RANK_DENSE : ๊ณต๋ 1์๊ฐ 3๋ช
→ 1์ / 1์ / 1์ / 2์
· RANK_UNIQUE : ๊ณต๋ 1์๊ฐ 3๋ช
→ 1์ / 2์ / 3์ / 4์
์์ฃผ ๋์ค๋ ์ง๋ฌธ
ํตํ ์ด๋ธ์ ๊ผญ ๋์ ๊ฒ์ผ๊น?
์๋๋ค.
๋ง์ฝ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ VLOD์ ๋์ด๋์ด ์๋ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ํธ๊ฐ ๊ทธ๋๋ก ๋์๋ณด๋์ ๋ณด์ด๋ ๊ฒฝ์ฐ๋
ํตํ ์ด๋ธ ์ฌ์ฉ์ ๊ถํ๋ค.
๊ทธ๋ ์ง๋ง ํ ์คํธ ํ ์ด๋ธ์ ํ๋์ ํ ์คํธ๋ก ๋ณด์ด๊ฑฐ๋
๋ค์ํ ๋์, ์ฐจ์ ๊ณ ์ , ํํฐ๋ง์ด ํ์ํ ๊ฒฝ์ฐ๋ ์ฌ์ฉํ์ง ์๋๋ค.
๋ํ ์ 3์๊ฐ ๋ณด์์ ๋ ๊ณ์ฐ๋ ์๋ณด๋ค๋ ํด์์ด ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋ค.
ํ ์ด๋ธ ๊ณ์ฐ์์ (์์ผ๋ก) (์๋๋ก) ๋ฑ๋ฑ์ ์ ํํ๊ฒ ๋ฌด์์ธ๊ฐ์?
์ ๊ฒฝ์ฐ, ๊ฐ ์ง์ญ์์ ์ฐ๋์ ๋ฐ๋ฅธ ํ๋งค์ก ์ฐจ์ด๋ฅผ ๋ณด๋ ๊ฒ์ ์ ์๋ฏธํ ๋ถ์์ด๋ค.
๋ฐ๋ผ์ ํ ์ด๋ธ(์์ผ๋ก)๋ฅผ ์ ํํ ์ ์๋ค.
ํ์ง๋ง, 2022๋ Central ์ ๋งค์ถ๊ณผ 2019๋ East์ ๋งค์ถ ์ฐจ๋ฅผ ๋ณด๋ ๊ฑด ์ ์๋ฏธํ ๋ถ์์ด ์๋๋ค.
๋ฐ๋ผ์ ํ ์ด๋ธ(์์์ ์๋๋ก)๋ ์ ํํ๋ฉด ์๋๋ค.
์์ ๊ฐ์ ๋ ผ๋ฆฌ๋ก ์ต์ ์ ์ ํํด์ฃผ๋ฉด ๋๋ค.
๊ณ์ฐ๋ ํ๋ ์ค๋ฅ ์์ ๋ฐ ํด๊ฒฐ๋ฐฉ๋ฒ
โ
์ง๊ณ๋์ง ์์ ์ธ์ ํผํฉ โ
[Case 1]
ex) SUM(profit)/sales
์ง๊ณ๋ ๊ฒ๊ณผ ์ง๊ณ๋์ง ์์๊ฒ์ ํผํฉ์ผ๋ก ์ค๋ฅ ๋ฐ์
-> SUM(profit)/SUM(sales) or profit / sales ๋ก ์์
[Case 2]
ex) IF [Region] = "West" THEN SUM([Sales]) END
-> SUM(IF [Region] = "West" THEN [Sales] END) ์ผ๋ก ์์
[Case 3]
ex) IF [Order Date] = #2022-06-28# then COUNTD ([Customer Name]) END
์ฃผ๋ฌธ ์ผ์๋ณ ์ฃผ๋ฌธ ๊ณ ๊ฐ ์ ์ง๊ณ
์ง๊ณ๋์ง ์์ ์ฃผ๋ฌธ์ผ์์ ์ง๊ณ๋ ๊ณ ๊ฐ๋ช
๊ฒฐ๊ณผ ํผํฉ์ผ๋ก ์๋ฌ ๋ฐ์
-> IF ATTR([Order Date]) = #2022-06-28# then COUNTD ([Customer Name]) END
ATTR
1. ATTR ์ ํจ์๋ค.
2. ํจ์์๋ ๋ก์ง์ด ์๋ค.
3. Y=ax+b
*๋ ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ด๋ค. ์ด๋ค ๊ฒฝ์ฐ์ ATTR์ด *์ ๋ฐํํ๋๊ฐ?
ATTR์ ์ง๊ณ ํจ์๋ค. ๊ทธ ๊ฒฐ๊ณผ๊ฐ view level of detail์์ ๊ฒฐ์ ๋๋ค๋ ๋ป์ด๋ค.
VLOD์ ๋ฐ๋ผ์ ATTR ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
ํ๋ธ๋ก์์ ์ง๊ณ๋ VLOD์์ ์ด๋ฃจ์ด์ง๋ค.
ATTR์ ์ ์๋
if min(์ฐจ์) = max(์ฐจ์) then ์ฐจ์ else * end
ํ์ฌ VLOD์์ ํด๋น ํ๋๊ฐ ๋จ ํ๋์ ๊ฐ์ ๊ฐ์ง๋๋, ๋ณต์์ ๊ฐ์ ๊ฐ์ง๋๋์ ๋ฐ๋ผ
๋จ ํ๋์ ๊ฐ์ ๊ฐ์ง๋ฉด ๊ทธ ๊ฐ์ ๊ฐ์ง๊ณ ์ค๊ณ , ์๋๋ฉด *์ ๊ฐ์ง๊ณ ์ค๋ผ.
๋ ์ง ํํฐ๋ง
MTD(Month To Date) / QTD(Quarter To Date) / YTD(Year To Date)
MTD : ์์ด ๋๊ณ. ์ฆ, ์์ด๋ถํฐ ๊ธฐ์ค ์์ ๊น์ง์ ๋์ ๊ฐ
๋์ผํ ๊ฐ๋ ์ผ๋ก YTD๋ ์ฐ์ด ๋๊ณ, QTD๋ ๋ถ๊ธฐ์ด ๋๊ณ๋ฅผ ๋ปํ๋ค.
DATEDIFF('month', [Order Date], [date parameter])=0
AND
DATEDIFF('day', [Order Date], [date parameter])>=0
์ ์์ ๊ณ์ฐ๋ ํ๋๋ก ์์ฑ ํ ํํฐ๋ก ์ค์ ํ์ฌ ์ฐธ์ด ๋๋ ๊ฐ๋ง view์ ํํ๋๋๋ก ํ๋ค.
๋ ์ง ์ค์ ์ ์ํ 'date parameter' ๋งค๊ฐ๋ณ์๋ฅผ ๋ง๋ค์ด ์์ ๊ฐ์ด ์ฐ๊ฒฐํ๋ฉด ์ฌ์ฉ์๊ฐ ์ง์ ํ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก MTD๋ฅผ ํ์ธํ ์ ์๋ค.
ํฉ๊ณ of MTD(Month To Date) / QTD(Quarter To Date) / YTD(Year To Date)
SUM(IF [MTD ์๋งน์ด] THEN [Sales] END)
ํ์ฌ๋ก๋ถํฐ ๊ธฐ์ค๋ฌ์ ํฉ๊ณ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด?
CASE [M-1, M-2]
WHEN '1' THEN SUM(IF DATEDIFF('month', [Order Date], TODAY())=12 THEN [Sales] END)
WHEN '2' THEN SUM(IF DATEDIFF('month', [Order Date], TODAY())=13 THEN [Sales] END)
END
ํ์ฌ๋ก๋ถํฐ 1๋ ์ , ๊ทธ๋ฆฌ๊ณ 13๊ฐ์ ์ ๊น์ง์ ํฉ๊ณ๋ฅผ ๋ณด๊ธฐ ์ํ ์์ด๋ค.
์ ์์ ๋งค๊ฐ๋ณ์ 'M-1, M-2'์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
๐ป ์ค๋์ ๊ณผ์
๊ฐ์ธ ๊ณผ์ ) ๋ ์ง ๋งค๊ฐ๋ณ์ ์ด์ฉํ์ฌ ๋์๋ณด๋ ๋ง๋ค๊ธฐ - ๋ ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ฒด ๋์๋ณด๋์ ์ ์ฉํ ์ ์์๊น?
1. ์ํธ ๋งค๊ฐ๋ณ์ ๋์๋ณด๋์ ์ฐ๋๋๊ฒ ๋ง๋ค๊ธฐ (๋ ์ง ๋งค๊ฐ๋ณ์, ๋ฌธ์์ด ๋งค๊ฐ๋ณ์)
2. ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ด๋ฏ๋ก today()๋ ์๋์ด ์๋๋ค. ํ์ฌ๋ฅผ x๋ผ๊ณ ์ง์ ํ MoM, YoY, MTD, YTD ๋ง๋ค๊ธฐ
3. ๊ธฐ๋ถ๋ฐ์ ์ซ์, ์ ์ฒด ๊ธฐ๋ถ๋ฐ์ ์ซ์ ์ค ๋ช%์ธ์ง ๋ํ๋๋๋ก. ๋งค๊ฐ๋ณ์ ์ด๋ฆ : ๊ธฐ๋ถ ๊ธ์ก, %๋ก ์ ํด์ ๋ง๋ค๊ธฐ
'STARTERS 4๊ธฐ > [STARTERS] TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[STARTERS 4๊ธฐ TIL] #33์ผ์ฐจ(23.03.23) (0) | 2023.03.27 |
---|---|
[STARTERS 4๊ธฐ TIL] #32์ผ์ฐจ(23.03.22) (0) | 2023.03.22 |
[STARTERS 4๊ธฐ TIL] #30์ผ์ฐจ(23.03.20) (0) | 2023.03.21 |
[STARTERS 4๊ธฐ TIL] #28์ผ์ฐจ(23.03.16) (0) | 2023.03.16 |
[STARTERS 4๊ธฐ TIL] #27์ผ์ฐจ(23.03.15) (0) | 2023.03.15 |