Sql 在limit子句中使用count
有没有办法在SQL查询的limit子句中使用select计数 原始查询:Sql 在limit子句中使用count,sql,postgresql,Sql,Postgresql,有没有办法在SQL查询的limit子句中使用select计数 原始查询: SELECT * FROM flight_delays LIMIT 10; 但是像这样的动态: SELECT * FROM flight_delays LIMIT ( select count(foo) from bar group by bar.bing ) 你可以做: SELECT fd.* FROM (SELECT fd.*, ROW_N
SELECT *
FROM flight_delays
LIMIT 10;
但是像这样的动态:
SELECT
*
FROM
flight_delays
LIMIT
(
select
count(foo)
from
bar
group by
bar.bing
)
你可以做:
SELECT fd.*
FROM (SELECT fd.*, ROW_NUMBER() OVER () as seqnum
FROM flight_delays
) fd CROSS JOIN
(select count(foo) as cnt
from bar
) x
WHERE seqnum <= x.cnt;
您可以创建一个函数,该函数将首先计算限制值,然后使用该限制执行查询 您可以这样调用函数:
SELECT * FROM flight_delays_limited();
这是相当不清楚的。请显示示例数据和预期输出好吗?@GMB limit子句中的表达式需要减少到整数evalute到整数您的sql应该可以工作,你能发布当你试图执行它时出现的错误吗?基本上我认为有一种方法可以在limit子句中使用count/sum表达式,它会减少为整数,但根据Postgres文档,limit子句只使用整数和所有表达式。不过,我不知道ALL表达式是如何工作的。
SELECT * FROM flight_delays_limited();