Robert Stanford <rstanford@xxxxxxxxx> writes: > Can anyone suggest an elegant way to coalesce consecutive rows so only the > first start time and last end time for each group of events (by input) is > returned. Window functions don't change the number of query result rows, so that idea is a dead end. The standard way to solve this is GROUP BY: SELECT Input, MIN(Start) AS Start, MAX(End) AS End FROM ... GROUP BY Input ORDER BY Input -- optional If MIN/MAX don't quite express what you need to happen, then you might need to write custom aggregates. Point though is that you want aggregation within GROUP BY groups, not windowing. regards, tom lane