"Craig A. James" <cjames@xxxxxxxxxxxxxxxx> writes: > insert into hitlist(p_id, sortorder) > (select p_id, nextval('hitlist_seq') from > (select p_id, min(data) as m from c group by p_id order by m); > Apparently, the sort order returned by the innermost select is NOT > maintained as you go through the next select statement -- the rows seem > to come out in random order. This surprised me. It surprises me too. This is outside the SQL spec, because the spec doesn't allow ORDER BY in subselects, but Postgres definitely does and we expect it to be honored. Can you provide a complete example and the EXPLAIN plan that you're getting? regards, tom lane