Robert Treat <xzilla@users.sourceforge.net> writes:
> Sort (cost=616.64..620.56 rows=1568 width=12) (actual time=46.579..54.641 rows=6407 loops=1)
> Sort Key: latest_download.host_id
> -> Subquery Scan latest_download (cost=498.14..533.42 rows=1568 width=12) (actual time=43.657..45.594
rows=472loops=1)
> I am wondering why it would end up with a different number of rows after
> the sort operation.
The planner's estimate didn't change: 1568 at both steps. The "actual"
is the number of rows actually pulled from the node at runtime, and the
discrepancy here occurs because this is the inner side of a mergejoin.
mergejoin has to rescan duplicate inner rows to join them to duplicate
outer rows. It looks like you have a pretty fair number of
duplicates...
regards, tom lane