gpt4 book ai didi

sql - 如何对 Synapse Analytics 无服务器 SQL 池中的行进行随机采样?

转载 作者:行者123 更新时间:2023-12-03 03:42:24 26 4
gpt4 key购买 nike

SQL 中是否有任何方法可以使用 Azure Synapse 从链接的外部数据源中随机抽取 N 行(或 M% 如果需要)行分析无服务器 SQL 池?

Cryptographic functions are not available in the serverless SQL pool ,所以基本上我不能使用 RAND()CHECKSUM(NEWID()),例如通过与我想要的值 N(或 M)进行比较来定义过滤行的条件:

FUNCTION 'RAND' is not supported.

可以对外部数据源中的字段使用HASHBYTES,但我的表每行不包含唯一 ID。

SELECT title, director, HASHBYTES('sha2_256', title)
FROM external_table

理想情况下,采样应该在统计上是合理的,而不是依赖于数据库的某些实现细节(如 TABLESAMPLE 那样,无论如何在无服务器池中也不可用)。

最佳答案

扩展@GregGalloway 的评论

查询看起来像这样:

WITH [cte_sample] as (SELECT 
[title],
[director],
ROW_NUMBER() OVER (ORDER BY [ProductKey]) % 20 as [Sample_Group]
FROM
[external_table])
SELECT
[title],
[director]
FROM
[cte_sample]
WHERE
[Sample_Group] = 1

使用 % 20 给出 5% 的样本量。

关于sql - 如何对 Synapse Analytics 无服务器 SQL 池中的行进行随机采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70466315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com