Difference between "TOP" and "SAMPLE" in TeraData SQL

Steve picture Steve · Jun 16, 2011 · Viewed 16.1k times · Source

What is the difference between "TOP" and "SAMPLE" in TeraData SQL? Are they the same?

Answer

Yuck picture Yuck · Jun 16, 2011

From TOP vs SAMPLE:

TOP 10 means "first 10 rows in sorted order". If you don't have an ORDER BY, then by extension it will be interpreted as asking for "ANY 10 rows" in any order. The optimizer is free to select the cheapest plan it can find and stop processing as soon as it has found enough rows to return.

If this query is the only thing running on your system, TOP may appear to always give you exactly the same answer, but that behavior is NOT guaranteed.

SAMPLE, as you have observed, does extra processing to try to randomize the result set yet maintain the same approximate distribution. At a very simple level, for example, it could pick a random point at which to start scanning the table and a number of rows to skip between rows that are returned.