❶ sql 销售占比
select b.*,b.销售额/a.总销售 as 总销售的百分比 ( select 店名 店名 ,sum(销售额) as 总销售 from 销售明细表 where 1=1 group by 店名) a ,销售明细表 b where a.店名=b.店名
这个是汉字的,可能会有语法错误,但是用这个思想就能搞定你的问题了,
❷ 求一个SQL百分占比的写法
你没试吗?这就是所有占总销量80%的所有客户,您糊涂了吗?即然您只要了80%的客户,都是一个百分数,还有什么多少?还排什么序?
不过,看在分的面子上,后面我又给了您占总销量80%以上的所有客户按销量反排序的查询。
MSSQL:
select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)=80
select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)=80
占总销量80%以上的所有客户按销量排序。
select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)>=80
order by SUM(B) desc
❸ SQL语句计算男女员工各占比例。
假设表员工档案里有性别、姓名两个字段
select count(*) as 员工总数,sum(case when 性别=男 then 1 else 0 end) 男员工数,sum(case when 性别=男 then 1 else 0 end)/nullif(count(*),0) 男所占比例,sum(case when 性别=女 then 1 else 0 end) 女员工数,sum(case when 性别=女 then 1 else 0 end) /nullif(count(*),0)女所占比例
from 员工档案
你自己试试看吧
楼上的写的不错,但是最好注意一些除0问题,要是张空表会报除0错误的。
❹ 用sql语句如何计算百分比或者统计数据个数
declare @biXiu int,@Zongshu int
select @biXiu=count(*) from course where type='必修'
select @Zongshu=count(*) from course
select cast(@biXiu*100.0/@Zongshu as varchar)+'%'
--其中 @biXiu代表必修个总数
--补充字符串说明
SELECT CAST('123.456' as decimal) 将会得到 123(小数点后面的将会被省略掉)。如果希望得到小数点后面的两位。则需要把上面的改为SELECT CAST('123.456' as decimal(38, 2))
❺ 使用sql语句计算百分比
1、若针对每行求百分比: select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名 。
2、若是对总计后的值求百分比: select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名
3、当然,以上都是以小数形式显示结果,若要以百分比形式显示结果:乘以100,并保留两位小数,然后加上“%”即可。
如:round((SA/TotelTime)*100,2) & "%"
❻ sql怎么统计所占百分比
超过百分之几对吧?
首先你一定知道一共有多少对吧?假设就是sum个用户
然后你可以根据积分查出来有多少用户<500的对吧.假设少与N个
那么你想要的就是N/sum
❼ SQL实现占比
sqlserver写法
创建表
createtabletest
(idint,
namevarchar(1))
insertintotestvalues(1,'a')
insertintotestvalues(2,'a')
insertintotestvalues(1,'a')
insertintotestvalues(1,'a')
insertintotestvalues(2,'a')
执行
selecta.id,a.count1,(a.count1+0.0)/b.count2
from
(selectid,count(*)count1fromtestgroupbyid)a,
(selectcount(*)count2fromtest)b
结果
❽ 求一个sql语句,查询某个值在数据集中的占比情况
写一个sql语句恐怕不行。
应当先写一段sql语句,计算出links字段的总和。
然后再写一段sql语句,以links字段的每一个值除以links字段的总和,这样就能得出links字段每个值在该字段总和里的占比。
这种情况下,就要写两端sql语句。
❾ sql 求占比
select
t1.province,
cast(count(1)*100/(selectcount(1)fromprovince)asvarchar(10))+'%'
from
provincet1
groupby
t1.province
❿ sql 查询某项比例
那超过50%的用户最多就只有一个?
selecta.商户名称
from
(select商户名称,count(*)count1from交易记录表where交易时间between'2014-01-01'and'2014-01-31'groupby商户名称)a,
(selectcount(*)count2from交易记录表where交易时间between'2014-01-01'and'2014-01-31')b
wherea.count1/b.count2>0.5
时间部分,你自己改写一下,我就随便写了个时间