这是我的基本疑问:
SELECT
eventtime::date AS p_date,
SUM(CASE WHEN x = 1 THEN 1 ELSE 0 END) AS ABC
FROM
310189
GROUP BY
p_date
ORDER BY
p_date;
字符串
它输出一个像this这样的图表。
我想修改这个查询,根据声明的变量的值聚合ABC的值。例如,如果变量设置为7,它将以每周为基础聚合(7天分组)。
我知道如何声明变量:
延迟@aggregation_days INT; SET @aggregation_days = 1
我不知道如何修改查询来解释它。
我试过使用case语句,但它不起作用。我也不认为这是最好的方法。
我也试过使用date_trunc函数,但不起作用。
是否可以使用generate_series函数来实现这一点?
1条答案
按热度按时间laik7k3q1#
在下面的查询中,我根据可变的天数(例如,每周分组为7天)将每条记录的
eventtime
调整为其聚合期的开始,然后相应地对数据进行分组和求和。字符串