sql - 如何从数据库表的最后 7 天中选择数据?
问题描述
我正在尝试在 PostgreSQL 中执行一个查询,该查询能够根据数据库中表的日期字段显示过去 7 天的记录,在我的情况下,该字段是“fecha_reparto”,表有下一个结构体:
驱动器 | 价值 | fecha_reparto |
---|---|---|
一个 | 10 | 22/03/2021 |
乙 | 2 | 21/03/2021 |
C | 5 | 20/03/2021 |
D | 6 | 15/03/2021 |
乙 | 7 | 2021 年 3 月 18 日 |
F | 11 | 17/03/2021 |
G | 2 | 16/03/2021 |
H | 1 | 2021 年 3 月 19 日 |
我想得到类似的东西:
驱动器 | 价值 | fecha_reparto |
---|---|---|
一个 | 10 | 22/03/2021 |
乙 | 2 | 21/03/2021 |
C | 5 | 20/03/2021 |
H | 1 | 2021 年 3 月 19 日 |
乙 | 7 | 2021 年 3 月 18 日 |
F | 11 | 17/03/2021 |
G | 2 | 16/03/2021 |
我尝试按如下方式使用 Max() 但出现错误:
Select drv, value, MAX(fecha_reparto) from
reporting_services.vw_mx_log_icaro_descripcion_entregas_comercial
WHERE fecha_reparto >= fecha_reparto - interval '7 days' and drv IS NOT NULL
之后我使用了下一个查询,我没有收到错误,但我不太确定它是否给了我想要的东西:
select drv,value,MAX(fecha_reparto) as fecha_reparto,
cobertura_3c_promedio from
reporting_services.vw_mx_log_icaro_descripcion_entregas_comercial
WHERE fecha_reparto >= fecha_reparto - interval '7 days' and drv IS NOT NULL
GROUP BY drv, value
你们觉得怎么样?最后一个查询没问题,还是我需要别的东西?
顺便说一句,谢谢,最好的问候。
解决方案
与表中的最近日期相比,您似乎希望 7 天的保留期发生。如果是这样,我们可以MAX()
在此处用作分析函数来查找此日期,然后大致使用您的第一个查询:
WITH cte AS (
SELECT *, MAX(fecha_reparto) OVER() AS max_fecha_reparto
FROM reporting_services.vw_mx_log_icaro_descripcion_entregas_comercial
)
SELECT drv, value, fecha_reparto
FROM cte
WHERE fecha_reparto >= max_fecha_reparto - INTERVAL '7 days' AND drv IS NOT NULL;
推荐阅读
- azure-data-lake - 我可以在 USQL 中使用正则表达式吗?
- vba - 将所有选定的工作表设置为相同的可见区域
- ruby-on-rails - 如何使用 Rails 从网站下载图像?
- react-native - 你如何在 react-native-gifted-chat 中自动对焦输入框
- javascript - 你如何将参数传递给react-intl中的defineMessages?
- time-series - 预测客户下个月的购买情况
- javascript - HTML AJAX 向后端发送空对象
- linux - 已执行 Cron 脚本但没有输出
- wordpress - 启用 WEBSITES_ENABLE_APP_SERVICE_STORAGE 后 WordPress for Linux Web App 丢失
- xamarin - Xamarin Forms FFImageLoading 角转换