PSQL передачи выберите счетчик к переменной - PullRequest
0 голосов
/ 07 мая 2018

В postgres Psql хотите выбрать count * из таблицы и передать значение в переменную, а затем использовать переменную в качестве входных данных для функции. я пытаюсь с этим безуспешно

\set cnt "select count(*)/1000 from  table;"

 select fn_something(cnt);

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Вы можете просто сделать это, используя подзапрос в качестве аргумента функции:

SELECT fn_something((SELECT count(*)/1000 FROM atable));

Помните, что PostgreSQL будет использовать целочисленное деление, то есть результат будет усечен. Если вы не хотите этого, напишите 1000.0, чтобы получить double precision результат.

0 голосов
/ 07 мая 2018

Вы должны быть в состоянии сделать это в простом SQL, используя CTE.

WITH
cnt as (
SELECT
    (count(*)/1000) as cnt
FROM
    table
)
SELECT
    fn_something(SELECT cnt FROM cnt)
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...