mysql - 错误代码:1054。“字段列表”中的未知列“时间戳”
问题描述
当我错了这段代码时,我得到了那个错误:
#sessions over 2 min
WITH frames AS (
SELECT
user_id, date(timestamp), time(timestamp) AS starttime,
COALESCE(
LEAD(time(timestamp)) OVER(PARTITION BY user_id, day(timestamp)),
'23:59:59'
) AS final
FROM events
)
#avg and number of session over 2 min
select
distinct(user_id), week(timestamp) as weeks,
avg(time(timestamp)) as sessiontime,
count(timestamp) as numbersessions,
TIMEDIFF(final, starttime) AS duration
from frames
WHERE TIMEDIFF(final, starttime) < 120
group by user_id, weeks
order by user_id, weeks;
我试图做两件事过滤不到 2 分钟的任何部分,并找到每周的平均会话长度以及每周的会话数
CREATE TABLE `events` (
`event` varchar(50) NOT NULL,
`user_id` varchar(50) NOT NULL,
`timestamp` timestamp NOT NULL
);
INSERT INTO `events` (`event`, `user_id`, `timestamp`) VALUES
('Email Opened', 'ckn7zd55x001z1ilpbnh319e9', '2021-05-01 04:23:13.762'),
('Email Opened', 'ckn7zd55x001z1ilpbnh319e9', '2021-05-01 04:23:16.615'),
('Application Opened', 'ckj57u3qa003p1to980q47gdf', '2021-05-01 04:40:59.306'),
('Screen', 'ckj57u3qa003p1to980q47gdf', '2021-05-01 04:40:59.356'),
('Screen', 'ckj57u3qa003p1to980q47gdf', '2021-05-01 04:41:01.736'),
('Application Opened', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:09.01'),
('Application Updated', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:09.01'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:09.089'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:11.446'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:12.327'),
('Application Backgrounded', 'ckj57u3qa003p1to980q47gdf', '2021-05-01 04:41:18.88'),
('Application Backgrounded', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:56.556'),
('Application Opened', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:41:57.455'),
('Application Opened', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:42:04.923'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:42:04.965'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:42:07.285'),
('Screen', 'ckiumnhqu000m1ioace3lexso', '2021-05-01 04:42:08.05'),
解决方案
时间戳是一个保留字,因此将其用作列名是一个非常糟糕的想法。
如果您坚持以这种方式使用它,则需要用引号括起来
推荐阅读
- c# - 根据某些字符或长度在 razor 中操作字符串
- java - 为什么gluon移动链接任务在ubuntu上失败?
- javascript - useReducer 没有使用 useEffect 更新状态
- python - 在python中制作使用绝对和相对目录路径的模块
- botframework - 在 Bot Framework Composer 的自适应表达式中使用 LG 模板/函数的语法
- javascript - 带有 async/await 的 JavaScript 数组过滤器
- reactjs - 你能区分 React-native 中 useRef、useCallback 和 useMemo 的使用吗?
- reactjs - 列表在反应中刷新时消失
- c - C 词法分析器:未终止的字符串文字的标记连接
- python - 需要在 python 中使用 openCV 检测图像中的特定图标