关于分组,高手请来看看

select count(*)
from a
where ( a.a >= '2003-01-01' ) and
( a.a < '2004-01-01' )
group by a.a,
a.b

结果集共有1445行,请问如何得到该值?

方法一:先执行上述语句,再执行select @@rowcount 可以实现

还有没有更好的方法用一个sql语句实现
---------------------------------------------------------------

你是要得到行数,要分组干什么?去掉分组!
select @@rowcount=count(*)
from a
where ( a.a >= '2003-01-01' ) and
( a.a < '2004-01-01' )

---------------------------------------------------------------

select count(distinct a , b )
from a
where ( a.a >= '2003-01-01' ) and
( a.a < '2004-01-01' )

---------------------------------------------------------------

select count() from (
select count(
)
from a
where ( a.a >= '2003-01-01' ) and
( a.a < '2004-01-01' )
group by a.a,
a.b) as A

---------------------------------------------------------------

up
我也来一个
select count() from (
select distinct a.a,a.b
from a
where ( a.a >= '2003-01-01' ) and
( a.a < '2004-01-01' ))
在来一个
select count(
)
from( select a.a,a.b
from a
where ( a.a >= '2003-01-01' ) and ( a.a < '2004-01-01' )
group by a.a, a.b
) as A

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus