【问题标题】:Teradata SQL - Very Large PullsTeradata SQL - 非常大的拉取
【发布时间】:2017-11-30 22:55:04
【问题描述】:

所以我有一个查询返回的行数超过 MS Excel 可以处理的行数(200 万),有没有人有任何关于让 Teradata 导出到多个 Excel 选项卡的建议,或者可能是一种分解大查询结果的方法,以便我可以运行查询以每次只提取更多可管理的块吗?

我知道有像 TOPSAMPLE 这样的命令,它们只会返回一个给定部分的 pull,但我不清楚排名的逻辑是什么一个查询然后返回,比如说 TOP 100000,然后第二次运行相同/相似的查询,但这次让它返回记录 100001 - 200000,并且然后返回 200001 - 300000 之后的时间,以此类推。

任何提示将不胜感激!我知道我可以导出为文本 CSV,但如果我能找到一种让 Teradata 与 Excel 配合使用的方法,那肯定会更容易。谢谢!

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    您可以使用 ROW_NUMBER() 为结果集中的每一行分配一个“ID”值,然后以您想要的任何块获取结果。类似的东西:

    SELECT col1, col2, ...
    FROM MyTable
    QUALIFY ROW_NUMBER() OVER(ORDER BY Unique_Col) BETWEEN <Start_Number> AND <End_Number>
    

    只需确保在 ORDER BY 中使用一个或多个唯一列,以便 ROW_NUMBER 函数在您每次运行查询时应用相同的排序。

    这不考虑在查询运行之间是否对结果集中的行(即添加/删除的行)进行了更改。如果这是一个问题,请先将行复制到临时表,然后针对临时表运行查询。

    【讨论】:

    • 非常感谢,这正是我想要的!非常欣赏它。 :)
    • 没有概率鲍勃:)。
    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2022-11-03
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多