递归 CTE 如何使用它

recurcive CTE how to use it

我想通过传递一个日期直到到达最终日期来创建递归 cte。谁能告诉我如何做的例子

我需要通过一个开始日期和一个结束日期,并统计每年有多少学生!

其中 :date 和 :finaldate 是一个输入

 with seventeen as 
(
    select  count(studentid)
    from students s
    join periodrange p on p.idx = s.periodrangeidx
    where p.validdate between :date and :finaldate
)

我想知道每一年的学生总和

这样的事情会奏效吗?或者我是否梦想着能实现复发性 CTE

您不需要 CTE,您可以使用分组依据和计数:

select  count(studentid), extrac(year from p.validatdate) as Year
from students s
join periodrange p on p.idx = s.periodrangeidx
where p.validdate between :date and :finaldate
Group by extrac(year from p.validatdate), studentid