以下是一个示例的SQL查询,可以从不同部分按比例获取随机的N行数据:
-- 获取部分A的随机N行数据
SELECT * FROM (
SELECT * FROM table_a ORDER BY RAND() LIMIT ROUND(N * ratio_a)
) AS temp_a
ORDER BY RAND()
LIMIT N;
-- 获取部分B的随机N行数据
SELECT * FROM (
SELECT * FROM table_b ORDER BY RAND() LIMIT ROUND(N * ratio_b)
) AS temp_b
ORDER BY RAND()
LIMIT N;
-- 获取部分C的随机N行数据
SELECT * FROM (
SELECT * FROM table_c ORDER BY RAND() LIMIT ROUND(N * ratio_c)
) AS temp_c
ORDER BY RAND()
LIMIT N;
上面的查询中,table_a、table_b、table_c分别是不同部分的表名,ratio_a、ratio_b、ratio_c分别是每个部分的比例(例如,0.2表示20%的比例),N是要获取的行数。
这个查询首先从每个部分按比例获取随机的部分数据,然后再从获取到的数据中再次随机选择N行数据。这样可以确保每个部分都有相应的比例,并且最终结果是随机的。
上一篇:按比例裁剪图像
下一篇:按比例调整大小以适应屏幕