psql将select count传递给变量

时间:2018-05-06 23:53:04

标签: postgresql psql

在postgres中,Psql希望从表中选择count *并将值传递给变量,然后使用变量作为函数的输入。 我正在尝试这个没有成功

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

 select fn_something(cnt);

2 个答案:

答案 0 :(得分:1)

您应该可以使用CTE在纯SQL中执行此操作。

WITH
cnt as (
SELECT
    (count(*)/1000) as cnt
FROM
    table
)
SELECT
    fn_something(SELECT cnt FROM cnt)
;

答案 1 :(得分:1)

您可以使用子查询作为函数的参数来执行此操作:

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

请注意PostgreSQL将使用整数除法,即结果将被截断。如果您不想这样,请写1000.0以获得double precision结果。