RWM Console cluster: risingwave-adib.adib-rw.svc.cluster.local

← cluster insights objects twrr_by_currency_mv
Overview Objects Graph History
materialized view · insights.twrr_by_currency_mv
Parallelism
2
Actors
10 / 10
running
Distribution
HASH
Rows
0
State size
Created
2026-06-30 21:57
Initialized
2026-06-30 21:57
Fragment flags
MVIEWSTREAM_SCAN
Actors
ActorFragmentWorkerState
54635 3082 3 running
54636 3082 3 running
54649 3084 3 running
54650 3084 3 running
55155 3081 3 running
55156 3081 3 running
55157 3083 3 running
55158 3083 3 running
55167 3085 3 running
55168 3085 3 running
sql · insights.twrr_by_currency_mv — click to expand
CREATE MATERIALIZED VIEW insights.twrr_by_currency_mv AS
WITH daily_balances AS (
  SELECT
    b.account_group_id,
    dim_balance_date,
    position_type,
    item_id AS holding_currency_code,
    currency_code,
    market_value,
    fair_value,
    market_value_system_currency,
    fair_value_system_currency,
    LAG(market_value) OVER w AS prev_market_value,
    LAG(fair_value) OVER w AS prev_fair_value,
    LAG(market_value_system_currency) OVER w AS prev_market_value_system_currency,
    LAG(fair_value_system_currency) OVER w AS prev_fair_value_system_currency
  FROM insights.position_by_currency_mv AS b
  JOIN insights.account_groups_mv FOR SYSTEM_TIME AS OF PROCTIME() AS ag
    ON b.account_group_id = ag.account_group_id
  WHERE
    position_type = 'POSITION' AND ag.source_entity_type = 'portfolio'
  WINDOW w AS (PARTITION BY b.account_group_id, position_type, item_id ORDER BY dim_balance_date)
), twrr_data AS (
  SELECT
    b.account_group_id,
    b.dim_balance_date,
    b.holding_currency_code,
    b.currency_code,
    b.market_value,
    b.prev_market_value,
    b.fair_value,
    b.prev_fair_value,
    b.market_value_system_currency,
    b.prev_market_value_system_currency,
    b.fair_value_system_currency,
    b.prev_fair_value_system_currency,
    COALESCE(t.adjusted_net_flow, 0) AS net_flow,
    COALESCE(t.adjusted_net_flow_system_currency, 0) AS net_flow_system_currency
  FROM daily_balances AS b
  LEFT JOIN insights.flow_by_currency_mv AS t
    ON b.account_group_id = t.account_group_id
    AND b.dim_balance_date = t.dim_transaction_date
    AND b.holding_currency_code = t.holding_currency_code
    AND t.position_type = 'POSITION'
)
SELECT
  account_group_id,
  dim_balance_date,
  holding_currency_code,
  currency_code,
  market_value,
  prev_market_value,
  net_flow,
  CASE
    WHEN prev_market_value IS NULL OR prev_market_value = 0
    THEN 0
    WHEN market_value = 0
    THEN 0
    WHEN market_value - net_flow < 0 AND prev_market_value + net_flow > 0
    THEN GREATEST(market_value / (
      prev_market_value + net_flow
    ) - 1, -0.999999999999999999)
    ELSE GREATEST((
      market_value - net_flow
    ) / prev_market_value - 1, -0.999999999999999999)
  END AS daily_subperiod_return,
  CASE
    WHEN prev_fair_value IS NULL OR prev_fair_value = 0
    THEN 0
    WHEN fair_value = 0
    THEN 0
    WHEN fair_value - net_flow < 0 AND prev_fair_value + net_flow > 0
    THEN GREATEST(fair_value / (
      prev_fair_value + net_flow
    ) - 1, -0.999999999999999999)
    ELSE GREATEST((
      fair_value - net_flow
    ) / prev_fair_value - 1, -0.999999999999999999)
  END AS daily_subperiod_fair_value_return,
  CASE
    WHEN prev_market_value_system_currency IS NULL
    OR prev_market_value_system_currency = 0
    THEN 0
    WHEN market_value_system_currency = 0
    THEN 0
    WHEN market_value_system_currency - net_flow_system_currency < 0
    AND prev_market_value_system_currency + net_flow_system_currency > 0
    THEN GREATEST(
      market_value_system_currency / (
        prev_market_value_system_currency + net_flow_system_currency
      ) - 1,
      -0.999999999999999999
    )
    ELSE GREATEST(
      (
        market_value_system_currency - net_flow_system_currency
      ) / prev_market_value_system_currency - 1,
      -0.999999999999999999
    )
  END AS daily_subperiod_return_system_currency,
  CASE
    WHEN prev_fair_value_system_currency IS NULL OR prev_fair_value_system_currency = 0
    THEN 0
    WHEN fair_value_system_currency = 0
    THEN 0
    WHEN fair_value_system_currency - net_flow_system_currency < 0
    AND prev_fair_value_system_currency + net_flow_system_currency > 0
    THEN GREATEST(
      fair_value_system_currency / (
        prev_fair_value_system_currency + net_flow_system_currency
      ) - 1,
      -0.999999999999999999
    )
    ELSE GREATEST(
      (
        fair_value_system_currency - net_flow_system_currency
      ) / prev_fair_value_system_currency - 1,
      -0.999999999999999999
    )
  END AS daily_subperiod_fair_value_return_system_currency
FROM twrr_data
WHERE
  NOT prev_market_value IS NULL
Lineage · insights.twrr_by_currency_mv 6 objects
Direct (1-hop) dependencies from rw_depend, across schemas. Click a neighbor to expand its dependencies; ⌘/Ctrl-click opens its page. Drag to pan, scroll to zoom. External source/sink endpoints (Kafka, Iceberg) are not shown.