在 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_row
和 end_row
为相应的值。