MODEL句の使用


MODEL句というのは、Oracle10gから使えるSELECT文の機能です。認知度が極端に低いです。

簡単な例 - テーブルの値を書き換えるだけ
with dt as(
SELECT '1' ID, 'JP' Country, '1000' Costs, '1' Timeline FROM DUAL UNION ALL
SELECT '2' ID, 'JP' Country, '200' Costs, '2' Timeline FROM DUAL UNION ALL
SELECT '3' ID, 'JP' Country, '4000' Costs, '3' Timeline FROM DUAL UNION ALL
SELECT '4' ID, 'UK' Country, '10' Costs, '1' Timeline FROM DUAL UNION ALL
SELECT '5' ID, 'US' Country, '30' Costs, '1' Timeline FROM DUAL UNION ALL
SELECT '6' ID, 'US' Country, '11' Costs, '2' Timeline FROM DUAL UNION ALL
SELECT '7' ID, 'US' Country, '1111' Costs, '3' Timeline FROM DUAL
)

select
calculated_difference
from
dt
model
  DIMENSION BY (id)
  MEASURES (Costs calculated_difference)
  rules
  (
    calculated_difference[any] = 100
  )