我在大查询中有一个具有以下架构的表:
客户 | epoc_time | 尝试ID |
---|---|---|
cust_id_1 | 1691191261 | ab1 |
cust_id_1 | 1691191263 | ab2 |
cust_id_2 | 1708458074 | ab3 |
每一行都有一个唯一的 attempts_id,我试图找到每个客户在每 30/60 分钟窗口内的总尝试次数。
我想实现以下输出:
客户 | 日期和时间窗口组合 | 时间窗口内的总尝试次数 |
---|---|---|
cust_id_1 | 2024-01-01-00.00.00 | 5 |
cust_id_2 | 2024-01-01-11.30.00 | 4 |
预先感谢您的帮助!
declare time_window int64 default 30;
SELECT
customer_id,
timestamp_seconds(safe_cast(floor(epoch_time / (time_window*60) ) * ((time_window*60)) as int64)) as date_and_timewindow_combination ,
count(distinct attempt_id) as total_attempts_in_the_time_window,
from your_table
group by 1,2;
您可以将纪元划分为间隔(在unix中)以获得任何所需的时间范围