Как выбрать первую запись со случайным ненулевым значением для определенного столбца - PullRequest
0 голосов
/ 26 апреля 2018

Я был связан со следующей проблемой и, наконец, получил ответ.Хотел поделиться с любым, кому это может понадобиться.

Мне нужно было выбрать первую запись со случайным, но не нулевым значением для столбца 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))

Мне нужен запрос, который выбрал случайную запись с существующим значением идентификатора.

1 Ответ

0 голосов
/ 26 апреля 2018

Решение заключается в следующем:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...