我参与了以下问题并最终得到了答案。想与任何可能需要的人分享。
我需要从我的表中选择id列的随机但非空值的第一条记录。 id列的值不是后续的,所以我需要选择一个存在的随机ID。
例如下表:
CREATE TABLE randomValue
(id int)
INSERT INTO randomValue
VALUES (generate_series(1, 10))
SELECT * FROM randomValue
DELETE FROM randomValue WHERE id IN
(SELECT id FROM randomValue WHERE id IN (2, 5, 7))
我需要一个选择具有现有id值的随机记录的查询。
答案 0 :(得分:0)
解决方案如下:
SELECT * FROM randomValue rv
WHERE EXISTS (SELECT rv1.id
FROM randomValue rv1
WHERE rv1.id = rv.id
)
OFFSET floor(random()* (SELECT Count(*) from randomValue)) LIMIT 1