SQLite是否支持公用表表达式?
我想运行这样的查询:
with temp (ID, Path)
as (
select ID, Path from Messages
) select * from temp
答案 0 :(得分:13)
答案 1 :(得分:1)
另一种解决方案是在您的应用程序中集成“CTE到SQLite”转换层:
“w为(y)z”=> “创建临时视图w为y; z”
“w(x)as(y)z”=> “创建临时表w(x);插入到w y; z”
作为一个(丑陋,缺乏,但有效)的例子: http://nbviewer.ipython.org/github/stonebig/baresql/blob/master/examples/baresql_with_cte_code_included.ipynb
答案 2 :(得分:0)
SQLite不支持CTE,窗口函数或任何类似的东西。但是,您可以使用 sqlite_create_function()通过SQLite API将它们注册到数据库中来编写您可以在SQLite中调用的自己的用户函数。您可以在数据库中注册它们,然后可以在自己的应用程序代码中使用它们。您可以创建一个聚合函数,该函数将根据各个列值执行一系列平均值的总和。对于每个值,调用一个步骤类型的回调函数,它允许您对数据执行一些计算,并且还有一个用于保存状态数据的指针。