gpt4 book ai didi

sql - 基于postgres中的列类别的分层抽样

转载 作者:行者123 更新时间:2023-11-29 13:25:46 29 4
gpt4 key购买 nike

我有一个包含大约 280,000 个观测值的数据集。然而,该观察的大部分属于一列的一个特定值。这是计数

Category    Count
A 8981
B 6146
C 243369
D 10678
F 4431
G 2421
H 1009
I 7948

如果你看到类别 C 有 243K 这样的记录,而其他类别则有很多。我想以这样一种方式对数据进行下采样,即保留其他类别值的所有记录,同时仅保留类别“C”中一定比例的随机记录。大概 10% 左右。这样我就可以在所有这些类别中正确分配数据。

如何在 postgres 中实现这一点?

最佳答案

查询从修改后的表中随机选择一个行,该行仅包含 10% 的 category C 行和所有其他类别的行:

select *
from (
(select *
from observations
where category = 'C'
order by random()
limit 243369* 0.1)
union
(select *
from observations
where category <> 'C')
) sub
order by random()
limit 1;

关于sql - 基于postgres中的列类别的分层抽样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34034019/

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