SQLSERVER2005中.怎么获得group by后的行数?

来源:百度知道 编辑:UC知道 时间:2024/05/05 05:48:02
如题:
比如一张表里数据本来有100条,我group by后只有20条.我怎么得到这个20.
。 还有个就是谁哪有支持group by的分页存储过程啊?要能返回group by后的条数(20条),而不是所有的(100条)
To: djybigeye
我写了个存储过程。每显示一页就又调用SQL存储过程
但是就卡这个返回group by后记录数上了。没group by还好弄的。
这是我部分代码
--计算总记录数
Declare @sql nvarchar(1000);
Declare @sql2 nvarchar(1000);
if (@Filter=NULL or @Filter = '')
begin
set @sql = 'select count(*) from ' + @Tables + ' ' + @strGroup
set @sql2 = 'select @TotalRecord = @@ROWCOUNT'
end
else
begin
set @sql = 'select count(*) from ' + @Tables + @strFilter + ' ' + @strGroup
set @sql2 = 'select @TotalRecord = @@ROWCOUNT'
end
EXEC sp_executesql @sql,@sql2,N'@TotalRecord int OUTPUT',@TotalRecord OUTPUT

帮忙看下SQL2那地方怎么写。我想获得@@ROWCOUNT的值
=========================
TO: 传说中的鹰王
语法错误。 我用的是SQLSERVER2005

楼主 你把问题搞复杂了嘛?
既然你是在程序中分页用,就在程序里面去写分页程序啊,为什么要在SQL里面搞呢,你想先把数据准备好了,用程序分页显示快呢?
还是每显示一页又调用SQL存储过程准备数据快呢?

先group by,再count(),你再试试

select count(a) from
(
select 1 a from table group by...
)