postgresql - 对 postgreSQL 中特定列值的计数进行采样

标签 postgresql sampling

我有一个包含一组值的表格,表格示例是

ID  |  Customer_name  | workorder
1   |    abc          | dispatch
2   |    xyz          | not_dispatch
3   |    jdk          | dispatch     

这总共持续了 100 万行。现在我想将这个数据集采样到 5000 行,我想要 3400 个工作单作为“not_dispatch”,1600 个工作单在样本中使用“dispatch”。 如何在 PostgreSQL 中完成此操作。

最佳答案

远非高效,但有效:

SELECT *
FROM (
  SELECT * FROM my_table
  WHERE workorder = 'dispatch' -- other filters
  ORDER BY random() LIMIT 1600) sub1
UNION
SELECT *
FROM (
  SELECT * FROM my_table
  WHERE workorder = 'not_dispatch' -- other filters
  ORDER BY random() LIMIT 3400) sub2;

关于postgresql - 对 postgreSQL 中特定列值的计数进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36723387/

相关文章:

java - 从数据库获取 hibernate 中的 List<String>

mysql - 选择字段为非空的所有项目

java - 未设置密码时如何连接 JDBC postgres 连接而无需密码

python - 返回基于类的 numpy 数组的分布样本

instruments - 编程乐器模拟器?

python - SMOTE - 无法将字符串转换为 float

SQL注入(inject)预防方法

sql - Postgresql 只从列中选择字母

filtering - 低通滤波器和采样频率

matlab - 使用 sinc 函数重建数字信号