toc_window_functions.yml 1.5 KB

1234567891011121314151617181920212223242526272829
  1. columns:
  2. - column: "Window Function"
  3. - column: "Idiomatic Materialize"
  4. rows:
  5. - Window Function: |
  6. [First value within groups](/transform-data/idiomatic-materialize-sql/first-value/)
  7. Idiomatic Materialize: |
  8. [Use `MIN/MAX ... GROUP BY` subquery](/transform-data/idiomatic-materialize-sql/first-value/).
  9. - Window Function: |
  10. [Lag over a regularly increasing field](/transform-data/idiomatic-materialize-sql/lag/)
  11. Idiomatic Materialize: |
  12. [Use self join or a self `LEFT JOIN/LEFT OUTER JOIN` by an **equality match** on the regularly increasing field](/transform-data/idiomatic-materialize-sql/lag/).
  13. - Window Function: |
  14. [Last value within groups](/transform-data/idiomatic-materialize-sql/last-value/)
  15. Idiomatic Materialize: |
  16. [Use `MIN/MAX ... GROUP BY` subquery](/transform-data/idiomatic-materialize-sql/last-value/)
  17. - Window Function: |
  18. [Lead over a regularly increasing field](/transform-data/idiomatic-materialize-sql/lead/)
  19. Idiomatic Materialize: |
  20. [Use self join or a self `LEFT JOIN/LEFT OUTER JOIN` by an **equality match** on the regularly increasing field](/transform-data/idiomatic-materialize-sql/lead/).
  21. - Window Function: |
  22. [Top-K](/transform-data/idiomatic-materialize-sql/top-k/)
  23. Idiomatic Materialize: |
  24. [Use an `ORDER BY ... LIMIT` subquery with a `LATERAL JOIN` on a `DISTINCT` subquery (or, for K=1, a `SELECT DISTINCT ON ... ORDER BY ... LIMIT` query)](/transform-data/idiomatic-materialize-sql/top-k/)