对 postgreSQL 中特定列值的计数进行采样
Sampling on count of specific column value in postgreSQL
我有一个带有一组值的 table,table 例如
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;
我有一个带有一组值的 table,table 例如
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;