一张表:
table
内有字段
id,name,address,status 分别为表ID,用户名,用户所在地区,状态,yes|no
说明:
状态一列,当为yes时,表示开通了,当为no时表示没有开通现在想要达到的效果
计算出一个地区的总的记录数,并计算出这个地区的开通数。我使用语句:
select count(address) from table group by address 这句查出一个地区所有注册数select count(address) from table where status='yes' group by address 这句查出一个地区所有开通数后来我用UNION联合来做
写成这样:select count(address) from table group by address union all select count(address) from table where status='yes' group by address
这样是可以一次性得出来的。但问题也就出来了,比如说,北京,北京有两个注册的,但没有一个开通服务的,第一条语句有结果。联合时,union后边的得不到这个值。这样就没法配对了。哪位高手帮忙一下。
我要达到的效果就是,我执行完一条语句后,可以同时得到一个地区的总数和开通数,并配对出现。这样我可以计算成功率的。
table
内有字段
id,name,address,status 分别为表ID,用户名,用户所在地区,状态,yes|no
说明:
状态一列,当为yes时,表示开通了,当为no时表示没有开通现在想要达到的效果
计算出一个地区的总的记录数,并计算出这个地区的开通数。我使用语句:
select count(address) from table group by address 这句查出一个地区所有注册数select count(address) from table where status='yes' group by address 这句查出一个地区所有开通数后来我用UNION联合来做
写成这样:select count(address) from table group by address union all select count(address) from table where status='yes' group by address
这样是可以一次性得出来的。但问题也就出来了,比如说,北京,北京有两个注册的,但没有一个开通服务的,第一条语句有结果。联合时,union后边的得不到这个值。这样就没法配对了。哪位高手帮忙一下。
我要达到的效果就是,我执行完一条语句后,可以同时得到一个地区的总数和开通数,并配对出现。这样我可以计算成功率的。
select count(address) from table group by address union all select count(distinct address) from
table where status='yes' group by address
会有重复的出现我在想用其它的方法解决
如:
select t1.num1,t2.num2 from (select count(address) as num1 from table group by address) as t1,(select count(address) as num2 from table where status='yes' group by address ) as t2但这样做还是有问题。还是配不上对。
呵呵