sql - LAG SQL 操作在 Amazon Redshift 中不起作用
问题描述
我不断收到错误:
语法错误:在“,”或附近行:4 位置:3
在尝试为来自 Amazon Redshift 的会话创建跟踪时在 Periscope 上。当我尝试仅查询 id、时间戳和 LAG 操作时,LAG 操作似乎会引发错误。
SELECT
id
, timestamp
, SUM(is_new_session) OVER (ORDER BY id, timestamp) AS global_session_id
, SUM(is_new_session) OVER (PARTITION BY id ORDER BY timestamp) AS user_session_id
FROM (SELECT -- creates session
id
, timestamp
, CASE
WHEN EXTRACT('EPOCH' FROM timestamp) - EXTRACT('EPOCH'
FROM last_event) >= (60 * 10) OR last_event IS NULL THEN 1
ELSE 0
END AS is_new_session
FROM (SELECT
id
, timestamp
, LAG(timestamp,1) OVER (PARTITION BY id ORDER BY timestamp) AS last_event
FROM ios.tracks) last
) final
解决方案
timestamp
是保留字。可能需要始终将其指定为"timestamp"
列或使用不同的名称。
https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html
推荐阅读
- sql - DEBUG 使用 express 插入 post 查询 SQL
- javascript - Vue如何将adsense脚本注入头部
- acumatica - 根据 Acumatica 中的条件处理子报表,
- cloud-foundry - 我们可以实时更新关键云代工厂的凭证吗?
- java - 春季服务中的状态
- c# - IdentityServer:具有不同授权类型的多个客户端,策略无法正常工作
- reactjs - 我正在尝试使用 AWS SES 在我的 React 应用程序中设置联系我们表单,但出现“CredentialsError: Missing credentials in config”错误
- sharepoint - Sharepoint Online 中的订单扩展
- c# - 如何模拟 ElasticSearch NEST 的 GetAsync
- python - 射击子弹时目标射击游戏严重滞后