Postgres TABLESAMPLE picks disk addresses, not rows
Tablesample Picks Rows

TABLESAMPLE SYSTEM samples 1% of pages, not rows, so results come in physical bundles: on a time-ordered table, min(created_at) was off by up to five hours and averages varied ten times more than BERNOULLI. REPEATABLE fixes the seed but not the data—updates and rewrites move rows, so a pinned sample silently changes. Hashing a primary key instead keeps a stable subset through VACUUM FULL and CLUSTER.
Everything odd about TABLESAMPLE comes from one fact: it doesn't pick rows, it picks addresses.