Meh*_*pta 2 sql database group-by amazon-web-services amazon-athena
DB 中唯一的 standard_lab_parameter_name、单位对的数量约为 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
Run Code Online (Sandbox Code Playgroud)