¡¼Çü½Ä¡½
¡¼¿¹Á¦¡½½Ç½À Å×ÀÌºí »ý¼º
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
CREATE TABLE all_sales (year NUMBER NOT NULL, month NUMBER NOT NULL, prd_type_id NUMBER, emp_id NUMBER, amount NUMBER(8,2), PRIMARY KEY (year, month, prd_type_id, emp_id) ); insert into all_sales values(2009,1,1,21,10034.84); insert into all_sales values(2009,2,1,21,15144.65); insert into all_sales values(2009,3,1,21,20137.83); insert into all_sales values(2009,4,1,21,25057.45); insert into all_sales values(2009,5,1,21,17214.56); insert into all_sales values(2009,6,1,21,15564.64); insert into all_sales values(2009,7,1,21,12654.84); insert into all_sales values(2009,8,1,21,17434.82); insert into all_sales values(2009,9,1,21,19854.57); insert into all_sales values(2009,10,1,21,21754.19); insert into all_sales values(2009,11,1,21,13029.73); insert into all_sales values(2009,12,1,21,10034.84); insert into all_sales values(2009,1,1,22,11034.84); |
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id = 21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (AMOUNT sales_amount)
(sales_amount[1,2010] =
sales_amount[1,2009],
sales_amount[2,2010] =
sales_amount[2,2009] +
sales_amount[3,2009],
sales_amount[3,2010] =
ROUND(sales_amount[3,2009]*1.25,2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT year, month, prd_type_id, sales_amount
FROM all_sales
WHERE prd_type_id = 1 and emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[1,2010] =
sales_amount[month=1, year=2009],
sales_amount[2,2010] =
sales_amount[month=2, year=2009] +
sales_amount[month=3, year=2009],
sales_amount[3,2010] =
ROUND(sales_amount[month=3, year=2009] * 1.25, 2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[1,2010] =
ROUND(AVG(sales_amount)
[month BETWEEN 1 AND 3, 2009], 2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[1,2010] =
ROUND(SUM(sales_amount)
[ANY, year IS ANY], 2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[1,2010] =
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[ FOR month FROM 1 TO 3
INCREMENT 1, 2010 ] =
CASE WHEN sales_amount
[CURRENTV(), 2009] IS PRESENT THEN
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2)
ELSE 0
END)
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
SPREADSHEET
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[ FOR month FROM 1 TO 3
INCREMENT 1, 2010 ] =
CASE WHEN sales_amount
[CURRENTV(), 2009] IS PRESENT THEN
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2)
ELSE 0
END)
ORDER BY prd_type_id, year, month;
|
| MODEL ÇÔ¼ö |
| CURRENTV(dimension_column) | dimension Ä÷³ÀÇ °ªÀÌ Á¸ÀçÇÏ¸é ±× °ªÀ» ¹ÝÈ¯ÇØ ÁØ´Ù. |
| PRESENTNNV(cell, expr1, expr2) | Cell °ªÀÌ NOT NULLÀ̸é expr1À» ¹ÝȯÇϰí, NULLÀ̸é expr2¸¦ ¹ÝȯÇÑ´Ù. |
| PRESENTV(cell, expr1, expr2) | spreadsheet Àý¿¡ ÀÇÇØ ½ÇÇàµÇ¾îÁø dimension_columnÀÇ °ª Áß¿¡ Cell°ú µ¿ÀÏÇÑ °ªÀÌ Á¸ÀçÇϸé expr1À» ¹ÝȯÇϰí, Á¸ÀçÇÏÁö ¾ÊÀ¸¸é expr2¸¦ ¹ÝȯÇÑ´Ù. |
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
(sales_amount[ FOR month FROM 1 TO 3
INCREMENT 1, 2010 ] =
presentv(sales_amount
[CURRENTV(), 2009],
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2), 0))
ORDER BY prd_type_id, year, month;
|
| Model-Rule Àý |
| RULES UPDATE | °Ë»öÁ¶°Ç°ú µ¿ÀÏÇÑ ÇàÀÌ ¹ß°ßµÇ¸é ÇØ´ç ÇàÀ» updateÇÔ |
| RULES UPSERT | °Ë»öÁ¶°Ç°ú µ¿ÀÏÇÑ ÇàÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é ÇØ´ç ÇàÀ» insertÇÔ |
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
insert into all_sales
values(2010, 1, 1, 21, 11034.84);
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
RULES UPDATE
(sales_amount
[ FOR month FROM 1 TO 3
INCREMENT 1, 2010 ] =
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2))
ORDER BY prd_type_id, year, month;
|
| ¼Ò½ºÄÚµå | ½ÇÇà°á°ú |
|---|---|
SELECT prd_type_id, year, month, sales_amount
FROM all_sales
WHERE prd_type_id = 1 AND emp_id =21
MODEL
IGNORE NAV
PARTITION BY (prd_type_id)
DIMENSION BY (month, year)
MEASURES (amount sales_amount)
RULES UPSERT
(sales_amount
[ FOR month FROM 1 TO 3
INCREMENT 1, 2010 ] =
ROUND(sales_amount
[currentv(), 2009] * 1.25, 2))
ORDER BY prd_type_id, year, month;
|
| Model Á¶°Ç |