sql - 如何在 SQLite 的窗口框架中添加数值?
问题描述
我在 SQLite 的 Windows 框架规范中添加数字时遇到了一些困难。我在 SQLITE 中使用 R。尽管如果您知道如何在 SQL 中执行此操作,那么这也很有帮助。
这是一个指向 sqlite 窗口函数文档的链接——尽管我很难理解我应该将数值放在哪里。
https://www.sqlite.org/windowfunctions.html
特别是我正在查看框架边界部分。
我一直收到错误消息:
Error: unsupported frame specification
有任何想法吗?
我的代码如下:
"create temp table forward_looking as
SELECT *,
COUNT( CASE channel WHEN 'called_office' THEN 1 ELSE null END)
OVER (PARTITION by special_digs
ORDER BY time
RANGE FOLLOWING 604800)
AS new_count
from my_data
")
基本上,代码应该查看 unix 纪元时间的时间列,然后提前 7 天(unix 时间为 604800)然后将计数添加到 new_count。并逐行执行此操作。
我想我的数字可能RANGE FOLLOWING
是错误的??
解决方案
我认为你想要:
create temp table forward_looking as
select
d.*,
count(*) filter(where channel <> 'called_office') over (
partition by special_digs
order by time
range between current row and 604800 following
) as new_count
from my_data d
也就是说,该range
子句需要一个开始和结束规范 ( between ... and ...
)。
请注意,我还修改了窗口函数以使用标准filter
子句,这使得逻辑更加明显。
推荐阅读
- javascript - 按键中的多个函数,调用第二个函数,直到第一个函数完成
- lisp - 创建一个返回列表的函数,该列表包含列表的所有其他值
- python - python中属性中“str”对象的使用
- mobile - 在启动时导航到移动应用程序中的非主页是否可以接受
- javascript - 从授权服务器重定向后如何解决 CORS 错误?
- c - 将文本附加到 C 中文件的开头不起作用
- r - 从R中的列表中提取数据框
- sql - SQL 根据其他列添加列(已排序)
- tensorflow - 如何在tensorflow中获取第一批的损失张量
- windows - 为什么我无法在 Windows 10 上读取 deno 代理环境变量?