在BigQuery中,可以使用窗口函数和子查询来选择根据Group By条件选择前3条数据。以下是一个示例:
WITH top_3_rows AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY order_column) AS row_num
FROM
your_table
)
SELECT
*
FROM
top_3_rows
WHERE
row_num <= 3
在上面的代码中,your_table是你要查询的表名,group_column是用于分组的列名,order_column是用于排序的列名。
首先,我们使用窗口函数 ROW_NUMBER() 对每个分组内的行进行编号,按照 order_column 的值进行排序。然后,我们将这些编号作为一个临时表 top_3_rows 的一部分。
接下来,我们在最外层的查询中选择 top_3_rows 表中 row_num 小于等于3的行,即每个分组中的前3条数据。
你可以根据你的实际需求修改以上代码,并将其应用于你的BigQuery查询。