写一个sql语句查询wre_qr_code表的activity_id有哪几种通过活动id和包含今天前七天的的日期查询(要把数据库字段为DateTime的字段)的字段转成(Date)累计Count表里的status=1的 查询的结果每条都是活动Id还有对应的活动日期的count
时间: 2024-12-11 21:23:18 浏览: 10
wre.zip_3σ_3σ准则_wre_模板匹配 车牌_跳变车牌定位
你可以使用以下SQL语句来查询`wre_qr_code`表的数据,其中包含活动ID (`activity_id`) 和日期 (`DateTime` 字段转换为 `Date` 类型),并且只考虑活动状态 (`status`) 等于 1 的记录,在过去七天内:
```sql
SELECT
activity_id,
DATE_TRUNC('day', DateTime) AS activity_date,
COUNT(*) OVER (
PARTITION BY activity_id
ORDER BY DATE_TRUNC('day', DateTime) ASC
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS cumulative_count
FROM
wre_qr_code
WHERE
status = 1
AND DATE_TRUNC('day', DateTime) >= CURDATE() - INTERVAL '7 days';
```
这个SQL语句做了以下几个事情:
1. 使用 `DATE_TRUNC('day', DateTime)` 函数将 `DateTime` 字段转换为日期格式。
2. `PARTITION BY activity_id` 按照活动ID分组数据。
3. `ROWS BETWEEN 6 PRECEDING AND CURRENT ROW` 计算每个活动ID在过去7天内的累计计数,包括当前日期。
4. `WHERE status = 1` 过滤出状态为1的记录。
5. `AND DATE_TRUNC('day', DateTime) >= CURDATE() - INTERVAL '7 days'` 确保只选取最近7天的数据。
阅读全文