在大查询中每 30 分钟窗口查找每组的行数

问题描述 投票:0回答:1

我在大查询中有一个具有以下架构的表:

客户 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

预先感谢您的帮助!

google-bigquery
1个回答
0
投票
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中)以获得任何所需的时间范围

© www.soinside.com 2019 - 2024. All rights reserved.