sql - 使用 EXTRACT 函数从时间戳获取年份或月份时出错
问题描述
我正在运行一个查询,即返回 New Users ByMonth
即 The count of the first-time transactions group by Phone Number
, by month
& year
。
这是我的查询:
select extract(year from timestamp FirstOrderDate) as yr,
extract(month from timestamp FirstOrderDate) as mon,
count(*)
FROM (
SELECT /*The column referred to below is character varying(50) - it is unfortunately not data type date*/
TO_DATE(MIN("Date_Transaction_Occured"),'mm-dd-yyyy') AS FirstOrderDate
FROM "TABLE1"
group by "PhoneNumber"
) AS FirstOrderTable;
group by extract(year from date FirstOrderDate),
extract(month from date FirstOrderDate);
这是错误:
ERROR: syntax error at or near "FirstOrderDate"
LINE 1: ...AS total FROM (select extract(year from timestamp FirstOrder...
^
解决方案
删除timestamp
关键字 - 仅在指定常量值时才需要,而不是在引用日期或时间戳类型的列时:
select extract(year from FirstOrderDate) as yr,
extract(month from FirstOrderDate) as mon,
count(*)
FROM ...
group by extract(year from FirstOrderDate),
extract(month from FirstOrderDate);
推荐阅读
- flutter - 如何在 Flutter 中为 Divider 添加渐变颜色
- angular - 如何使用角度激活的路由器从 url 访问查询参数?
- javascript - while 循环的问题 - 生成随机卡片
- docker - 高山 docker 容器无法识别 tesseract-ocr
- arrays - 是否有一种算法可以比对元素进行排序更快地将具有相同键的元素分组?
- linux - 在 .patch 文件中手动创建一个新文件,但“索引”行是干什么用的?
- java - 跟踪文件更改的最有效方法是什么?
- python - TypeError:列表索引必须是整数或切片,而不是 str?刽子手
- node.js - 如何从 node.js 脚本登录 azure 广告(无浏览器流程)
- python - 如何为这个数组序列创建一个“for”循环?