-- Analytical fact table: positions_daily -- End-of-day position snapshots. -- Partitioned by dt on MinIO. -- Path: s3://stonks-lakehouse/warehouse/positions_daily/dt={yyyy-mm-dd}/part-*.parquet -- Requirements: 9.4, 9.5, 10.1, 10.3 -- Design ref: Section 7 (lake.positions_daily) CREATE TABLE IF NOT EXISTS lakehouse.stonks.positions_daily ( ticker VARCHAR, quantity DOUBLE, avg_entry_price DOUBLE, close_price DOUBLE, market_value DOUBLE, unrealized_pnl DOUBLE, broker_account VARCHAR, execution_mode VARCHAR, snapshot_at TIMESTAMP(6) WITH TIME ZONE, dt DATE ) WITH ( format = 'PARQUET', partitioned_by = ARRAY['dt'], external_location = 's3a://stonks-lakehouse/warehouse/positions_daily/' );