我想做这样的事情:
CNT=2;
//[edit]
select avg(price) from (
select first :CNT p.Price
from Price p
order by p.Date desc
);
这不起作用,Firebird 不允许:cnt
作为 FIRST 的参数。我需要平均第一个 CNT 最新价格。数字 2 发生变化,因此不能硬编码。
这可以分解为 FOR SELECT 循环并在达到计数时中断。这是最好的方法吗?这可以在单个 SQL 语句中完成吗?
将 SQL 创建为字符串并运行它也不是最合适的。数据库编译我的 SQL 语句很重要。