其实也不仅限于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的每个分组中选择行。
使用ROW_NUMBER()函数和子查询,可以实现对数据表按特定列分组,并在每组中只选取前三条记录的功能。这个方法适用于需要限制每个类别显示数量的场景。

被折叠的 条评论
为什么被折叠?



