其实也不仅限于BQ。
目标:先赚一个亿,啊不是,写一个SQL,以A列分组,只取每组的三条数据。
可以使用 ROW_NUMBER()
函数和子查询来实现此操作。
WITH table_with_row_numbers AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) AS row_num
FROM your_table
)
SELECT *
FROM table_with_row_numbers
WHERE row_num <= 3
这个SQL语句会将输入表(your_table
)按列A分组,并使用 ROW_NUMBER()
函数为每个分组中的行分配行号。然后,它会从具有行号小于或等于3的每个分组中选择行。