On Tue, Apr 23, 2024 at 8:13 PM Tatsuo Ishii <is...@sraoss.co.jp> wrote: > SELECT v.a, count(*) OVER w > FROM (VALUES ('A'),('B'),('B'),('C')) AS v (a) > WINDOW w AS ( > ORDER BY v.a > ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING > PATTERN (B+) > DEFINE B AS a = 'B' > ) > a | count > ---+------- > A | 0 > B | 2 > B | > C | 0 > (4 rows) > > Here row 3 is skipped because the pattern B matches row 2 and 3. In > this case I think cont(*) should return 0 rathern than NULL for row 3.
I think returning zero would match Vik's explanation upthread [1], yes. Unfortunately I don't have a spec handy to double-check for myself right now. --Jacob [1] https://www.postgresql.org/message-id/c9ebc3d0-c3d1-e8eb-4a57-0ec099cbda17%40postgresfriends.org