sql - Postgres减去日期间隔
问题描述
我是 SQL 新手,但有一个(可能很明显)问题。我的目标是显示最后一个日期条目前一个月的所有数据。执行下面的代码块查找一个月前的日期时,
SELECT MAX(created_at) - INTERVAL '1 MONTH' AS date
FROM shopify_view
它返回,'2019-11-27 11:40:06'。说得通!
但是,当我尝试获取日期高于该值的所有日期时:
SELECT created_at AS date
FROM shopify_view
GROUP BY created_at
HAVING created_at >= MAX(created_at) - INTERVAL '1 MONTH'
ORDER BY created_at
它将第一个日期返回为“2018-04-23 10:57:28”。没有意义!
我错过了什么?谢谢!!
解决方案
您应该使用子查询
SELECT *
FROM shopify_view
Where created_at >= (SELECT MAX(created_at) - INTERVAL '1 MONTH' AS date
FROM shopify_view)
ORDER BY created_at
推荐阅读
- sql-server - 在 Calalog 中执行 SSIS 包后如何读取变量值?
- python - 如何在 plotly 中覆盖同一图中的两个图(在 plotly 中创建帕累托图)?
- ios - Swift:在 macOS/iOS 中是否有类似于 NSSpellCheck 的操作系统调用,但用于从字典中获取单词定义,
- javascript - 当汉堡包按钮出现时,标题不会停留在左上角
- javascript - 将 vue js 组件参数传递给 vuex 方法样式的 getter 参数
- android - Android BLE Glucometer 数据解析 - 日期时间
- reactjs - React:将数据从子组件发送到父组件
- c - 为什么我在 C 中访问二维数组时得到错误的值?
- python - 使用共轭梯度法在 Numpy 阵列中拟合 3D 高斯的困难
- java - Java Selenium - 重命名下载的文件