TeraData SQL 中的“TOP”和“SAMPLE”有什么区别?他们是一样的吗?
问问题
21485 次
2 回答
16
TOP 10 表示“按排序顺序排列的前 10 行”。如果您没有 ORDER BY,那么通过扩展,它将被解释为以任何顺序要求“任意 10 行”。优化器可以自由选择它可以找到的最便宜的计划,并在找到足够的行返回后立即停止处理。
如果此查询是您系统上唯一运行的查询,则 TOP 似乎总是给您完全相同的答案,但不能保证这种行为。
正如您所观察到的,SAMPLE 会进行额外处理以尝试随机化结果集,同时保持相同的近似分布。例如,在一个非常简单的级别上,它可以选择开始扫描表的随机点以及在返回的行之间跳过的行数。
于 2011-06-16T15:43:54.173 回答
2
“示例”命令:
Sel * from tablename
sample 100
这将为您提供表中 100 条不同记录的样本。SAMPLE 命令每次运行时都会给出不同的结果。
顶部命令:
sel top 100 * from tablename;
这将给出表的前 100 行。TOP 命令每次运行时都会给你相同的结果。
于 2019-02-10T09:31:37.367 回答