SQL分页具有group by子句的查询

时间:2012-05-18 04:51:40

标签: sql sql-server group-by pagination

是否可以执行查询的分页类型,其中我的主查询中包含group by子句。

我将如何实现这一点(如果可能的话)

示例查询:

SELECT * FROM TABLE_NAME GROUP BY DATEPART(YEAR,DATE), DATEPART(YEAR,MONTH)

我可以通过逐页阅读来获得结果吗?

...在讨论这个话题的同时,我是否也可以获得在不将其放入子查询的情况下检索的总行数?

2 个答案:

答案 0 :(得分:2)

使用ROW_NUMBER& SQL Server的CTE功能如下所述。

WITH CTE AS (
SELECT     A,B,C
           ROW_NUMBER() OVER (ORDER BY  columnName) RN
)
SELECT * FROM CTE WHERE RN Between 1 and 10

请参阅http://sqlserverplanet.com/sql/pagination-using-rownumber了解详情。

答案 1 :(得分:-1)

分页的概念是:

  1. 您需要获取总行数。

    SELECT * FROM table_name其中id ='id';

  2. 设置每页显示的项目数。比如$ limit = 50。这意味着,每页显示50个项目。

  3. 嗯,我认为如果你看看这个,http://php.about.com/od/phpwithmysql/ss/php_pagination.htm应该会更好。它的解释要好得多。

    希望有所帮助。