leadlag_compact.sql 670 B

1234567891011121314151617
  1. /* syntax version 1 */
  2. /* postgres can not */
  3. $in = SELECT
  4. value,
  5. SUM(unwrap(cast(subkey as uint32))) over w1 as sum1,
  6. LEAD(value || value, 3) over w1 as dvalue_lead1,
  7. SUM(cast(subkey as uint32)) over w2 as sum2,
  8. LAG(cast(value as uint32)) over w2 as value_lag2,
  9. FROM (SELECT * FROM plato.Input WHERE key = '1')
  10. WINDOW
  11. w1 as (PARTITION /*+ COMPACT() */ BY () ORDER BY value ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING),
  12. w2 as (PARTITION COMPACT BY key ORDER BY value DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
  13. ;
  14. SELECT value, dvalue_lead1, value_lag2 FROM $in ORDER BY value;