【问题标题】:Selecting n% rows in DB2 SQL在 DB2 SQL 中选择 n% 行
【发布时间】:2023-02-07 00:38:43
【问题描述】:

我的表中有一组大约 50k 个数字。我想拆分或获取一定比例的行。我正在使用 DB2,所以我不能像在 MS SQL Server 中那样使用 top 子句。

早些时候我使用 limit 因为我需要选择 n 行。

Select subs_msisdn 
from DB2.table
Limit 10

但是现在我需要选择 n% 的行而不是 n 行。我怎样才能做到这一点?

【问题讨论】:

  • 您可以使用 DB2 中的 OFFSETFETCH FIRST 子句从数据库的数据表中选择一定百分比的行。
  • 如果我是对的,DB2 提供“仅获取第一行”。因此,如果您需要例如 20% 的表,一种方法是从您的表中执行 select count(*) * 0.2 作为变量或 cte,并将结果放在 FECTCH FIRST 条件中。

标签: sql db2


【解决方案1】:

如果您不需要精确的要返回的行的百分比,如果您的 Db2 版本支持它,您可以使用 TABLESAMPLE clause

Select subs_msisdn from DB2.table tablesample system(10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2021-10-20
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多