首页 > 解决方案 > SQLAlchemy 中是否有 func.random() 的等价物来查询 teradata 数据库?

问题描述

我想使用 SQLAlchemy 从 teradata 数据库中查询随机行选择。基本上我想翻译以下语句(适用于 SQLite),因此它也适用于 teradata。

sample = session.query(sample_table_name).order_by(func.random()).limit(1000)

是否有func.random()适用于 teradata 的等价物?我知道,例如对于 Oracle DB,您需要将其替换为text('dbms_random.value').

标签: pythonsqlalchemyteradata

解决方案


我不确定这sqlalchemy一点,但你可以SAMPLE用来获取行的样本:

-- Pseudo-randomized (faster)
SELECT *
FROM MyTable
SAMPLE 1000
;

-- Simple random sample (takes longer)
SELECT *
FROM MyTable
SAMPLE RANDOMIZED ALLOCATION 1000
;

推荐阅读