4 ms·
I’ve created a custom aggregate in Postgres that lets you essentially get the same result as what MySQL does: select a, last(b), last(c) from table group b
by zeroimpl 7y ago
I’ve created a custom aggregate in Postgres that lets you essentially get the same result as what MySQL does:
select a, last(b), last(c) from table group by a
As it’s name implies, returns the last value that the aggregate encountered for the group. You can add an “order by” within the parenthesis to make it deterministic.
- profquail 7y agoIsn’t this what the LAST_VALUE window function does? If so, that’s a standardized SQL syntax which is supported in both postgresql and recent versions of MySQL. https://www.postgresqltutorial.com/postgresql-last_value-function/ https://www.postgresqltutorial.com/postgresql-last_value-fun...
- zeroimpl 6y agokinda. You can use aggregates as window functions, but cannot use window functions as aggregates. So it would be: select a, last_value(b) over(partition by a), last_value(c) over(partition by a) from table Note the lack of a "GROUP BY" so this will result in duplicates unless you add a DISTINCT.