Sometimes people use mysql instead of postgresql. So, here's a delta function for mysql that will provide the basis for a derivative(x,y) function. Since it uses a temporary table, different sessions won't collide; however when used two or more times in the same query, it uses a unique ID hack to keep track. I'll benchmark this and post some updates tomorrow.

-- return delta of argument -- pass in a unique id when used 2+ times in a query drop function delta; delimiter // create function delta (n bigint, uniq int) returns float deterministic begin declare last_n bigint; create temporary table if not exists tmp_delta ( id int not null, last bigint not null ); -- first datum always returns 0 or garbage select last into last_n from tmp_delta where id = uniq ; if last_n is null then insert into tmp_delta set id = uniq, last = n; set last_n = n; end if; update tmp_delta set last = n where id = uniq; return n - last_n; end // delimiter ; select (delta(rx, 1), delta(tx, 2) from router where interface = 1 order by stamp ;