在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查询。