繁体   English   中英

从 AWS Athena 的表中选择每组 1000 个样本

[英]Select 1000 samples per group from a table in AWS Athena

我在 AWS Athena 中有一个具有以下架构的表在此处输入图片说明

DB 中唯一的标准实验室参数名称、单位对的数量约为 3k,并且 DB 有大约 8000 万个条目。 现在,我希望每个唯一的 standard_lab_parameter_name,单位对获得 1000 个样本(随机),因此接近 3k x 1000 行。 我尝试在互联网上搜索任何此类查询,但徒劳无功。 有什么帮助吗?

您可以使用 CTE 为每个standard_lab_parameter_name , units对生成随机行号,然后通过要求行号<= 1000为每对选择前 1000 行:

WITH CTE AS (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY standard_lab_parameter_name, units ORDER BY RANDOM()) AS rn
    FROM yourtable
)
SELECT *
FROM CTE
WHERE rn <= 1000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM