如何使用SQL查询获取某个日期之后90天内无新增数据的最后一日记录?
时间: 2024-12-18 21:30:36 浏览: 5
在SQL中,你可以通过使用窗口函数来解决这个问题。假设有一个名为`your_table`的数据表,其中有一个日期字段`date_column`,你可以使用以下查询:
```sql
WITH last_date AS (
SELECT date_column,
ROW_NUMBER() OVER (ORDER BY date_column DESC) as row_num
FROM your_table
WHERE date_column >= DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY)
)
SELECT MAX(date_column) as last_record_date
FROM last_date
WHERE row_num = 1;
```
这个查询的工作原理是:
1. `WITH last_date` 创建了一个名为`last_date`的临时视图,只包含过去90天内的记录,并按照日期降序排序。
2. `ROW_NUMBER()`函数给每一行分配一个行号,行号随日期递增。
3. 最后,外部查询选择行号为1的记录,也就是日期列的最大值,即90天内最后一天有新记录的日期。
阅读全文