Hi, Julian,

I am writing down some detailed examples of join and need your further help
in understanding the semantic meaning of the following example:

SELECT id, value, cost FROM Orders OVER (ROWS 3 PRECEDING) JOIN Shipments
OVER (ROWS 3 PROCEDING) ON Orders.id = Shipments.id

In this example, if id is not the row number, what would be the default
semantic meaning of the join? Does it mean that each sliding window in
Orders now need to join with each sliding window in Shipments? If that's
the case, that would be equivalent to removing all the windows and just do
a full stream-to-stream join, which is not possible for infinite streams.
Hence, does not make sense to define window in the query here. On the other
hand, if the semantic of the join is to join the "current windows" from
both streams, how do we align the windows from two streams? Because in this
case, when the query starts from two streams now determines the results.

Does the above example make sense in SQL? Or should we just declare that
this is not supported as joins of two streams w/o time-bound?

Thanks!

-Yi

Reply via email to