
我有一个uid和anchorUid关系表名为userAnchor类图片,现在我需要从这个表中选择一些数据;
我的问题是,我可以在一个sql中执行查询吗?
发布于 2021-12-21 09:15:03
WITH
cte1 AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY id) rn
FROM test
WHERE anchor_id = 1 ),
cte2 AS ( SELECT MAX(rn) cnt
FROM cte1 ),
cte3 AS ( SELECT id,
ROUND(cnt * percent_from / 100) + 1 range_from,
ROUND(cnt * percent_till / 100) range_till
FROM cte2
CROSS JOIN percents ),
cte4 AS ( SELECT id, ROUND(range_from + RAND() * (range_till - range_from)) random_id
FROM cte3)
SELECT cte1.id, cte1.uid, cte1.anchor_id
FROM cte4
JOIN cte1 ON cte4.random_id = cte1.rn;演示小提琴给出了每一步的解释。
解决方案不是压缩/优化的。你可以自己动手。
https://stackoverflow.com/questions/70431516
复制相似问题