select convert(numeric(8,2) ,
创新互联自2013年创立以来,先为南康等服务建站,南康等地企业,进行企业商务咨询服务。为南康企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
cast( (select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /
(select count(列1) from 表))) * 100 as varchar(10) ) + '%'
注:*100 as varchar(10))+'%' (10) 变成长度是10的字符串,然后再加上%号,如果不用加%,就不用cast,直接 * 100 就可以了。
扩展资料:
注意事项
一、concat函数
该函数用于字串的拼接,比如我们想把10变成10%,就可以写成:
select concat(10,'%');
二、FLOOR(X)
将小数的小数部分去除,只留下整数部分,并且不进行四舍五入。
select FLOOR(5.5);
运行结果为:5
ROUND(X,D)函数和TRANCATE(X,D)函数
两个函数都可以用来对小数保留指定小数位数,其中第二个参数D用来指定要保留到第几位。差别是前者会进行四舍五入,而后者不会。
select ROUND(5.55,1);
select TRANCATE(5.55,1);
二者的运行结果分别为:5.6、5.5。
直接将百分率那列乘以0.01即可(中间需要提取%百分号左侧的有理数,包括使用转换函数强制转换成实数,如双精度浮点数)。
-- 伪码
SELECT percentage*0.01 AS chValue;
-- such as
20%=20*0.01=0.20
举例说明。例如有数据表如图:
第一步:选择数据区域B2:B5.
第二步:点击格式-设置单元格格式。如图:
第三步:选择数值-百分比-小数点位数。如图:
按确定后结果如图:
注: 本例是采用excel 2007版本做的。
联机调试时显示为指数形式是因为显示或输入框不够大,实际数值不影响运行。用状态监视或输入时建议把浮点数框拉长使用。
这个不难吧,我的思路是这样的,你先取出来全部的,然后进行读取,放到一个大数组里面,然后根据你给的百分比的数值可以计算出来,第一页和最后一页,数组里面有array_slice的函数,可以按你给的数值读取数据的多少,开始和结束位置,分页就像普通的分页程序一样写就可以了。
希望可以帮到你
myisam直接count然后limit取。innodb count记得用二级索引作为条件。count(*)from table where uid0 . 这样。不然不准还慢。