在 SQL Server 中,**GROUP BY** 子句是一个非常重要的功能,用于对数据进行分组,以便我们可以对每个组执行聚合函数,如 COUNT, SUM, AVG, MAX, 和 MIN 等。以下是结合 **GROUP BY** 和分页的示例:

WITH CTE AS (
    SELECT column1, column2, aggregate_function(column), ROW_NUMBER() OVER (ORDER BY some_column) AS RowNum
    FROM table_name
    GROUP BY column1, column2
)
SELECT column1, column2, aggregate_function(column)
FROM CTE
WHERE RowNum BETWEEN start_row AND end_row;

在这个示例中,我们首先创建了一个名为 CTE 的公共表表达式,使用 ROW_NUMBER() 函数为每行分配一个唯一的行号。然后,在主查询中,根据需要的页码选择特定范围的行。假设你想获取第10页,每页显示10条记录,可以设置 start_rowend_row 为相应的值。