Как использовать значение столбца PostgreSQL с некоторыми вычислениями в качестве значения второго столбца - PullRequest
0 голосов
/ 08 мая 2020

Я вставляю огромный набор данных в таблицу SQL и хочу добиться чего-то вроде этого.

SELECT generate_series(1,10) AS a, mod(generate_series(11,20),3) as b,mod(generate_series(21,30),5) as c;

 a  | b | c 
----+---+---
  1 | 2 | 1
  2 | 0 | 2
  3 | 1 | 3
  4 | 2 | 4
  5 | 0 | 0
  6 | 1 | 1
  7 | 2 | 2
  8 | 0 | 3
  9 | 1 | 4
 10 | 2 | 0
(10 rows)

Проблема в том, что я не хочу вызывать функцию generate_series для b и c. Я хочу взять значение a и выполнить модификацию для b и c, как показано ниже, или даже эффективным способом, но я не могу понять этого, как я могу сделать это эффективно, поскольку я буду генерировать и сохранять 1 миллион записей.

SELECT generate_series(1,10) AS a, mod(a,3) as b,mod(a,5) as c;

1 Ответ

2 голосов
/ 08 мая 2020

Используйте предложение from:

SELECT a, mod(a, 3) as b, mod(a, 5) as c;
FROM generate_series(1,10) gs(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...